Software Engineering Professional

Book Profile

Software Architecture: The Hard Parts

Neal Ford, Mark Richards, Pramod Sadalage & Zhamak Dehghani · 2021

A rigorous, trade-off-driven guide to the most difficult structural, data, and communication decisions architects face when designing and evolving modern distributed systems.

Get the book →

Software Architecture: The Hard Parts equips software architects with a systematic framework for navigating the genuinely difficult decisions in distributed architectures—problems that have no universally correct answers, only competing sets of trade-offs. Using a single running example (the Sysops Squad ticketing system), the book walks through every major challenge: how to decompose a monolith into services using component-based patterns, how to pull apart and reassign ownership of operational data, how to choose the right database type, how to design service communication and coordination using eight named transactional saga patterns, how to manage distributed workflows via orchestration and choreography, how to handle code reuse without dangerous coupling, and how to separate analytical from operational data using the emerging data mesh pattern. Throughout, authors Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani demonstrate how to document decisions via Architecture Decision Records, automate governance via fitness functions, and—most importantly—build the skill of trade-off analysis so that architects can tackle novel problems their organizations have never faced before.

What it argues

A causal-structural model describing how architectural design levers and contextual conditions determine coupling patterns, which in turn drive psychological and behavioral states (architect decision quality, team coordination) and ultimately produce system-level and organizational outcomes such as scalability, fault tolerance, maintainability, and business agility.