Software Architecture: The Hard Parts
I keep this at #59 because a case-based guide to the trade-offs architects face once simple rules stop being enough. It keeps making the shelf ask more of me.
The long version
Ford, Richards, Sadalage, and Dehghani use case studies and decision frameworks to explore difficult architecture trade-offs: granularity, decomposition, distributed data, contracts, workflows, sagas, analytical coupling, and evolutionary change. Instead of declaring one architecture superior, they emphasize fitness functions, coupling analysis, and explicit trade-off records. I return to it when I need a book that makes the work of making machines useful without letting the work become automatic personal again.
Why it is here
It is the practical antidote to architecture by slogan. The book becomes most valuable after you know basic patterns and need to decide what a particular boundary buys, what it costs, and how the system can evolve without pretending uncertainty disappears. I do not want the lesson to become another sentence I agree with and leave behind.
How to read it
Use a current system as the case study. For each chapter, create an architecture decision record with alternatives, forces, risks, reversibility, and a measurable fitness function. Do not implement a distributed pattern before naming the simpler option it replaces. I will stop long enough to write what the chapter changes, if anything.
What it taught me
- 01
Every architecture choice trades among coupling, consistency, deployability, performance, and complexity.
- 02
Service granularity should follow measurable drivers, not fashion.
- 03
Architecture decisions improve when assumptions, consequences, and fitness functions are recorded.
Before and after
What makes it easier
Where it leads
Building Evolutionary Architectures
Neal Ford; Rebecca Parsons; Patrick Kua; Pramod Sadalage
Designing Data-Intensive Applications
Martin Kleppmann
More about the author
Neal Ford and Mark Richards are software architects and educators; Pramod Sadalage is a data and evolutionary architecture specialist; Zhamak Dehghani originated data mesh. Together they bring complementary experience in systems, data, and organizational boundaries.
More by the same hand
Fundamentals of Software Architecture
Mark Richards; Neal Ford
Building Evolutionary Architectures
Neal Ford; Rebecca Parsons; Patrick Kua; Pramod Sadalage
Data Mesh
Zhamak Dehghani