09 January 2023
</img>
I enjoyed and wholeheartedly recommend this book by a collection of Thoughtworks Architects.
Software Architecture: The Hard Parts address both the technical and organizational difficulty of designing (re-designing in the example) distributed enterprise applications. Using the rewrite of a fictional application the authors discuss coupling, decomposition, operational and analytical data, reuse, distributed workflows, sagas (distributed transactions), trade-off analysis, and team dynamics.
Many of these topics have come up in recent discussions I have had with customers. That shouldn’t be surprising because the authors are consultants.
My favorite takeaway is the use of Architectural Decision Records to document why specific choices are made.
I also particularly enjoyed the chapter on Data Mesh by Zhamak Dehghani. In my opinion adopting a Data Mesh driven approach will pay enormous dividends for the enterprise over the next decade.
The backstory, which follows a team of architects as the refactor an existing monolithic application, is well done and illustrates the importance of team dynamics along with software architecture.
This is a great read that I can highly recommend to anyone building distributed systems or anyone who wants to know more about software architecture in general.