Why “Building Microservices” Is the Most Important Book You’ll Read This Year
Microservices are one of the development world's hottest topics. Check out why you should read Sam Newman's "Building Microservices" book, and what's so important about it.
Join the DZone community and get the full member experience.Join For Free
Learn how API management supports better integration in Achieving Enterprise Agility with Microservices and API Management, brought to you in partnership with 3scale
It is impossible to have escaped the hype surrounding microservices in the last year or so. The idea is simple and not a new one; monoliths are bad and should be broken up into small, intercommunicating chunks. This makes them much easier to build, design and maintain as well as reason about. This isn’t far from what was promised to the world with Service Oriented Architecture which went down in flames several years ago. Perhaps, for this reason, you’re a skeptic, or perhaps you’re just waiting for the patterns to mature. On the ***Technology curve chart*** it can seem from places like Twitter that microservices are now heading down the curve again.
If you have even the slightest interest in what all this microservices hubbub is about I implore you to read Building Microservices by Sam Newman. Sam is a well-known Thoughtworker who already has a number of great titles under his beltand can be seen often on the conference circuit. It’s safe to say the guy has got credentials, having worked across a variety of companies and teams for years implementing microservices. He has ploughed all of that knowledge into this book and has created the definitive microservices bible.
It’s important to note up front that this is an enjoyable read. Sam has an affable manner in his writing that makes it sound like he’s in the room with you having a chat. This should not be confused with it being a lightweight book, however. It really does cover everything you need to know.
I must admit I was intrigued to know how a book like this would work. It’s entirely language agnostic, so if you’re looking for a guide on how to build microservices specifically in your language then you’re out of luck. What this book does is go into vast detail about the realities of building and maintaining a microservices application. As many bandwagon jumpers have discovered it’s not as simple as writing tiny processes.
There are so many concerns that need to be addressed before you dive into this new world which I believe Building Microservices covers in great details and can be used as a guiding document even before you write a line of code. For example, it’s important to understand what protocols will be used for a user to service communication as well as service to service. How will you do authentication? Will a UI have to go to all the services individually over multiple calls? These are all incredibly important and difficult questions. Fortunately, Sam has seeming tried them all and openly shares the results in the book.
One of the most important takeaways from the book is surprising: don’t build microservices. The book goes into much greater detail than covered by [Martin Fowlers]() post to the same intent. Microservices are hard to design, specifically where the service boundaries are in an application. Trying to guess up front is a bad idea- if you’re wrong (and there’s a strong chance you will be) then the cost of reorganising your service boundaries is going to be high, much higher than starting with a monolith and then decomposing it later. If you’re already working on a monolith then you’re likely in the position you can start shaving off parts of your application already. Fortunately, strategies for this are covered as well.
The other big elephant in the room from my personal experience has been monitoring and support. Particularly in large organisations with separate support functions and centralised monitoring, a lot of teams seem to ignore support as part of the move to microservices when in reality it is one of the most important areas that needs to change. One cannot simply move from a monolithic service to 100 separate ones and hope the rest of the organisation will come along for the ride. Training and practice are required, as well as new software in many cases. Again this is covered thoroughly in the book and should be treated as the de-facto guide to anyone making the jump.
This is a genuinely impressive book that I feel will become one of the classics like “Clean Code.” It goes into an incredible amount of detail and is immensely practical, all whilst remaining a thoroughly entertaining read. Highly recommended.