Software Architecture: The Hard Parts book
Modern distributed-architecture trade-offs: service granularity, data ownership, contract evolution, distributed workflow.
Modern distributed-architecture trade-offs: service granularity, data ownership, contract evolution, distributed workflow.
why it matters
Most architecture books punt on the hard questions ('it depends'). This one walks through them: how to pull apart a monolith, how to size services, how to decide what owns the data, how to coordinate distributed transactions when 2PC isn't an option. Honest about trade-offs in a way few architecture books are.
key ideas
- Service granularity is a trade-off — small services have high coordination cost, large services have high blast radius
- Data ownership in distributed systems is the hard part; sagas, contracts, and CQRS are tools for managing it
- There is no right answer to most architecture questions, only better-articulated trade-offs
- The 'distributed monolith' anti-pattern: microservice deployment with monolithic coupling
who should read it
Senior engineers and architects working on monolith-to-microservices transitions, or trying to fix a distributed monolith. Pair with Microservices Patterns (Richardson) for tactical depth.