A review by naleagdeco
Building Microservices: Designing Fine-Grained Systems by Sam Newman

5.0

This has been my most enjoyable software design read since Release It! a few years ago (and I'm sad I waited so long to read it.)

I'm currently 1/3rd (I imagine) through the process of moving our software from a monolithic service into a microservice and more importantly one with multitenant customer integrations. I've been following the topics on this book through a variety of blog posts, other books (which expand on particular details of sections in his book) and conference videos.

In retrospect I wish I had started by reading this book so that I'd have a clear starting reference all in one place vs. seeing all those things fit together in a guided introduction.

Sam Newman is a very good technical writer, all of his text is clear, never too detailed and never too absract. His text is no-nonsense and that works well given this book's relatively short length for its wide scope.

The book starts with describing microservices and their supposed benefits. It then discusses important planning consideratinos (not just technical, business ones too!) before starting down this path, before going into strategies for starting to split one's monolithic service. The bulk of the book then becomes about particular considerations and possibly high-level approaches to a variety of software design aspects in a microservice context.

Those second and third chapters, about planning an architecture and about how to approach converting one's existing service, are increedibly useful to me. They aren't complete solutions, but they are approaches and considerations with enough guiderails that someone can start thinking about this for their particular situation.

Almost every other chapter provided at least one gleam of insight that I'll have to think about more at length, alongside the surveys of common microservice patterns for any particular aspect of running a software service.

If you are starting down the path of considering a microservice implementation, or are a developer inexperienced with how microservice architecture works, I highly recommend this book to see overall design philosophies and a lot of considerations about where one software's should be before beginning and also possible areas to start.