Software Architecture: The Hard Parts
An O'Reilly book by Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani on the architecture decisions that have no best practice: breaking up a monolith, deciding service granularity, splitting data ownership, managing distributed transactions and workflows, and choosing between saga styles. It teaches trade off analysis through a running story, for engineers who already know the patterns and need help choosing between them.
2021
O'Reilly · Sept 2026
4.25/5 (923 ratings)
Goodreads · Sept 2026
Book
System Design
Neal Ford, Mark Richards and others
Advanced
around $55
What the book is about
Most architecture books describe patterns. This one is about the decisions where every option has a real cost and no answer is universally right. Its full subtitle is "Modern Trade-Off Analyses for Distributed Architectures". The book follows a fictional team, the Sysops Squad, as they break apart a monolithic system, and uses their story to work through:
- Architectural decomposition: how to pull a monolith apart step by step, with different patterns for each step.
- Service granularity: the forces that push services to be smaller (disintegrators) and the ones that pull them together (integrators).
- Data: breaking apart a shared database, deciding data ownership, and accessing data owned by another service.
- Workflows and transactions: orchestration versus choreography, and a detailed classification of saga patterns with the trade offs of each.
- Contracts and coupling: managing contracts between services, and analytical data concerns.
Where it fits in your reading
This is a second architecture book, not a first. It assumes you know what microservices, event driven architecture and sagas are, and focuses on choosing between them. If you are new to the field, start with Fundamentals of Software Architecture by two of the same authors.
What readers say
On Goodreads the book averages about 4.25 out of 5 from over 900 ratings (September 2026). Readers commonly praise the trade off tables and the realism of the problems. Common criticisms are that the Sysops Squad story feels contrived at times, and that the book can be repetitive in places.
How to read it
- Read the chapters on data (decomposition, ownership and distributed data access) closely. They address the part of service architecture teams most often get wrong.
- For each trade off table, apply it to a system you know. Which option would you pick, and what would you give up?
- The saga chapter is a useful reference to reread whenever you design a multi step business process across services.
- Keep notes of the vocabulary (integrators, disintegrators, fitness functions). It gives you precise language for design reviews.
Is it worth it?
Yes, if you are a senior engineer, tech lead or architect working with or moving to distributed systems. The trade off analysis approach is the actual skill of the job and this book teaches it directly. It is not useful for coding interviews, and junior developers may find it too abstract until they have worked on a service based system.
Pair it with
- Fundamentals of Software Architecture as the prerequisite.
- Building Microservices by Sam Newman for a more implementation focused view of the same territory.
- Microsoft's cloud design patterns catalogue as a quick reference for saga, CQRS and related patterns.
Best for: experienced engineers who already know the patterns and want a disciplined way to choose between them in distributed systems.
Ready to start?
Opens on Neal Ford, Mark Richards and others in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.