Software Architecture: The Hard Parts — Notes

saht distributed-architecture trade-offs

Authors: Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
Publisher: O’Reilly Media, 2021
Pages: 462 PDF pages (15 chapters + appendices)
PDF: K:/Books/Software Architecture The Hard Parts - Modern Trade-Off Analyses for Distributed Architectures.pdf


What This Book Is About

Unlike books that prescribe “best practices,” this book argues there are no universal best practices — only context-specific trade-offs. Every architectural decision in distributed systems involves giving something up to gain something else. The book systematically catalogs these trade-offs across two major themes:

  • Part I — Pulling Things Apart: How to decompose monolithic systems into distributed components (services, data, teams)
  • Part II — Putting Things Back Together: How to integrate distributed components (reuse, transactions, data access, workflows, contracts, analytics)

The Sysops Squad Saga is a running fictional case study used throughout — a large ticket-management monolith being migrated to a distributed architecture.


Note Style

Each chapter file follows this structure:

  1. Overview — what architectural decision/challenge the chapter addresses
  2. Core Concepts — key terminology introduced
  3. Main Content — patterns, forces, frameworks (chapter-specific structure)
  4. Trade-off Summary — explicit comparison tables
  5. Decision Framework — when to use what
  6. Sysops Squad Saga — what the case study demonstrates
  7. Key Takeaways — 7-10 points
  8. Related Resources — wiki-links

Flashcards use Obsidian Spaced Repetition format with tag #flashcards #saht.


Chapter Progress

Chapter 1: Introduction

#TitleNotesFlashcards
1What Happens When There Are No “Best Practices”?

Part I: Pulling Things Apart

#TitleNotesFlashcards
2Discerning Coupling in Software Architecture
3Architectural Modularity
4Architectural Decomposition
5Component-Based Decomposition Patterns
6Pulling Apart Operational Data
7Service Granularity

Part II: Putting Things Back Together

#TitleNotesFlashcards
8Reuse Patterns
9Data Ownership and Distributed Transactions
10Distributed Data Access
11Managing Distributed Workflows
12Transactional Sagas
13Contracts
14Managing Analytical Data
15Build Your Own Trade-Off Analysis

Key Concepts Reference

TermDefinition
Architecture quantumIndependently deployable unit with high functional cohesion and high static coupling
Granularity disintegratorsForces pushing toward splitting a service into smaller pieces
Granularity integratorsForces pushing toward merging services into larger pieces
ChoreographyWorkflow coordination where each service is responsible for its own logic, no central orchestrator
OrchestrationWorkflow coordination via a central orchestrator service
SagaA distributed transaction pattern using a sequence of local transactions with compensating actions
Stamp couplingPassing large data structures between services when only a subset is needed
Data meshAnalytical data architecture treating data as a product owned by domain teams
Sysops SquadThe book’s running case study — a ticket management monolith being decomposed

Last Updated: 2026-05-30