Architecture: The Hard Parts

2 x 4 hours remote workshop
Zhamak Dehghani, Neal Ford, and Mark Richards

Architecture: The Hard Parts

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.

Software architects have no clean, easy decisions: everything is a terrible tradeoff. Architecture has lots of difficult problems, which this platform-agnostic class highlights by investigating what makes architecture so hard. This hands-on, platform-agnostic architecture class goes beyond the fundamentals of software architecture and focuses on the really hard problems. This class focuses primarily on aspects of distributed architectures and on areas surrounding modularity versus granularity, the challenges of event-driven architectures (including difficult error handling issues), distributed architecture patterns and how to decouple services to achieve proper granularity. Architecture is full of hard parts; by attending this workshop you can gain the insights and techniques to make it just a little softer.

This class is divided into 2 main parts:

Part 1: Pulling Things Part (Modularity and Building Blocks)

Part 2: Putting Them Back Together (Patterns and Tradeoffs)

Pulling things apart (Part 1) focuses on how to break up systems and identify levels of modularity. However, once you’ve broken apart your systems, how do you tie them back together? Putting them back together (Part 2) focuses on just this - the techniques of how to do orchestration, workflows, and transactions, while keeping parts decoupled from one another.

Part 1: Pulling Things Apart (Modularity and Building Blocks)

Architectural Modularity

  • Modularity vs. Granularity
  • Drivers for Modularity

Components as Architecture Building Blocks

  • Component Definition
  • Coupling Types
  • Connascence
  • Connascence Properties
  • Abstractness vs. Instability (Main Sequence)
  • Component Cohesion
  • Modern Connascence

Architecture Quantum

  • What is an Architectural Quantum?
  • Why are Quanta so Important to Architecture?
  • Examples of Architecture Quantum

Architecture Kata Exercises #1 - Breaking Apart The System

Modularity vs. Granularity

  • Determining The Right Level of Granularity
  • Service Granularity Drivers
  • Service Granularity Factors

Architecture Kata Exercises #2 - Identifying Services

Breaking Apart Data

  • Drivers For Separating Data
  • Factors Impacting Data Separation

Architecture Kata Exercises #3 - Data Ownership and Bounded Contexts

Analytical Reporting Challenges

  • Issues with Data Warehouses
  • Issues with Data Lakes

Part 2: Putting Them Back Together (Patterns and Tradeoffs)

Synchronous vs. Asynchronous Communication

  • Quantum Separation
  • Messaging For East-West Communication
  • Leveraging Queues For Back Pressure
  • Leveraging Publish-Subscribe For Extensibility

Contract Management

  • Consumer-Driven Contracts
  • Value-Driven Contracts
  • GraphQL
  • Schemas

Data Access and Data Sharing Strategies

  • Interservice Communication
  • Data Replication
  • Replicated Caching
  • Data Domains

Architecture Kata Exercises #4 - Data Access Techniques

Orchestration and Workflow

  • Differences Between Orchestration and Choreography
  • Choreography Examples
  • Orchestration Examples
  • Workflow Patterns and Sagas

Architecture Kata Exercises #5 - Orchestration and Workflow

Data Mesh

  • Defining a Data Mesh
  • Data Mesh Concepts

Class Summary: Final Words of Advice

Zhamak Dehghani

About Zhamak Dehghani

Zhamak Dehghani is the founder of Data Mesh and works as the director of emerging technologies with Thoughtworks in North America. She is the author of the “Architecture The Hard Parts” and “Data Mesh: Delivering Data-Driven Value at Scale” books. Zhamak serves on multiple advisory boards and in recent years, has been helping companies implement Data Mesh globally. She has designed this course based on her learnings and experience working with organizations across multiple industries.

All workshops by Zhamak Dehghani
Neal Ford

About Neal Ford

Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals, who thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He is an internationally recognized expert on software development and delivery, especially in the intersection of agile engineering techniques and software architecture. Neal has authored magazine articles, seven books (and counting), dozens of video presentations, and spoken at hundreds of developers conferences worldwide. His topics include software architecture, continuous delivery, functional programming, cutting edge software innovations, and includes a business-focused book and video on improving technical presentations. Check out his web site at

All workshops by Neal Ford
Mark Richards

About Mark Richards

Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of, a free website devoted to helping developers in the journey to becoming a software architect. He is the author of numerous technical books and videos, including the Fundamentals of Software Architecture, Software Architecture Fundamentals Video Series, and several books and videos on microservices as well as enterprise messaging. In addition to hands-on consulting, Mark is also a conference speaker and trainer, having spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.

All workshops by Mark Richards

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.

Also check out