jeremyrdavis.github.io

Jeremy Davis' simple site

Software Architecture: the Hard Parts Book Review

09 January 2023

</img>

tl;dr

I enjoyed and wholeheartedly recommend this book by a collection of Thoughtworks Architects.

Review

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.

Publisher’s Website

Software Architecture: the Hard Parts