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:
- Overview — what architectural decision/challenge the chapter addresses
- Core Concepts — key terminology introduced
- Main Content — patterns, forces, frameworks (chapter-specific structure)
- Trade-off Summary — explicit comparison tables
- Decision Framework — when to use what
- Sysops Squad Saga — what the case study demonstrates
- Key Takeaways — 7-10 points
- Related Resources — wiki-links
Flashcards use Obsidian Spaced Repetition format with tag #flashcards #saht.
Chapter Progress
Chapter 1: Introduction
| # | Title | Notes | Flashcards |
|---|---|---|---|
| 1 | What Happens When There Are No “Best Practices”? | ✅ | ✅ |
Part I: Pulling Things Apart
| # | Title | Notes | Flashcards |
|---|---|---|---|
| 2 | Discerning Coupling in Software Architecture | ✅ | ✅ |
| 3 | Architectural Modularity | ✅ | ✅ |
| 4 | Architectural Decomposition | ✅ | ✅ |
| 5 | Component-Based Decomposition Patterns | ✅ | ✅ |
| 6 | Pulling Apart Operational Data | ✅ | ✅ |
| 7 | Service Granularity | ✅ | ✅ |
Part II: Putting Things Back Together
| # | Title | Notes | Flashcards |
|---|---|---|---|
| 8 | Reuse Patterns | ✅ | ✅ |
| 9 | Data Ownership and Distributed Transactions | ✅ | ✅ |
| 10 | Distributed Data Access | ✅ | ✅ |
| 11 | Managing Distributed Workflows | ✅ | ✅ |
| 12 | Transactional Sagas | ✅ | ✅ |
| 13 | Contracts | ✅ | ✅ |
| 14 | Managing Analytical Data | ✅ | ✅ |
| 15 | Build Your Own Trade-Off Analysis | ✅ | ✅ |
Key Concepts Reference
| Term | Definition |
|---|---|
| Architecture quantum | Independently deployable unit with high functional cohesion and high static coupling |
| Granularity disintegrators | Forces pushing toward splitting a service into smaller pieces |
| Granularity integrators | Forces pushing toward merging services into larger pieces |
| Choreography | Workflow coordination where each service is responsible for its own logic, no central orchestrator |
| Orchestration | Workflow coordination via a central orchestrator service |
| Saga | A distributed transaction pattern using a sequence of local transactions with compensating actions |
| Stamp coupling | Passing large data structures between services when only a subset is needed |
| Data mesh | Analytical data architecture treating data as a product owned by domain teams |
| Sysops Squad | The book’s running case study — a ticket management monolith being decomposed |
Last Updated: 2026-05-30