Software Architecture: The Hard Parts:
Modern Trade-Off Analyses for Distributed Architectures
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
Learn how to think critically about the trade-offs involved with distributed architectures.
After reading the Fundamentals of Software Architecture and learning a great deal from what should’ve been an introductory book and I still do refer to the book fairly frequently. I was looking for a book that would dive a little deeper and I was delighted to discover that Neal Ford and Mark Richards were also involved in writing this book.
provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.
What I enjoyed about this book, is that it discusses how and when to implement the patterns and approaches detailed on the first book,and a number of others. The authors take you through implementing this during the course of Fictional project within a fictional organisation.
We get to explore how to breakdown a faulty monolithic architecture and converting it to micorservices based architecture. Each chapter essentially compares different aspects of how a monolithic architecture might have been written to do something in the past, then how a modern microservice architecture could do the same thing today.
The book starts out by describing strategies on how to break apart monolithic software application into smaller standalone microservice components and how these separate components then work together to provide an event driven software application.
There are very few code samples in the book, and the book is purely focused on the architectural aspects and presents different options how to tackle most common problems and the associated trade-offs. In many ways the book adds additional commentary and information to Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith, helping you to investigate why architecture is so difficult and provides proven mechanisms to address these complex problems and make them understandable.
Co-authors Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani examine everything from how to determine service granularity, manage workflows and orchestration, manage and decouple contracts, and manage distributed transactions to how to optimize operational characteristics, such as scalability, elasticity, and performance.
This makes the book a very useful as one gets a pretty comprehensive understanding of various methodologies as well as possible practical applications.
This book is not just for software architects — data architects, DBAs, product managers and others will glean valuable insights into some of the complex issues architects face every day.