“Building Microservices” by Sam Newman – book review

TD DR: Mandatory book for every developer who wants to work with microservices.

Microservices architecture is a trend in a modern software, which is currently implemented across our whole IT industry. Unfortunately, people started applying microservices without any greater understanding of how they should do it. It ended with massive collapses and posts like “The death of microservice madness”.

To avoid such problems I can fully recommend Sam Newman’s book “Building Microservices”. It is a very well written compendium about microservices. Sam does not only describes the benefits of using microservices but mostly focuses what are the challenges with such architecture. And how you can overcome these difficulties. The book covers multiple technical aspects of microservices, but what is even more important, recommends soft skill’s practices and advice. After this book, you will get a weapon to handle microservices monster 😉

Let me show you my list, about what I found interesting in this book (click here to omit):

  • Evolutionary Architect guidelines
  • Explanation why we should start from monolith and when should you divide it
    • And why DDD is crucial with a decomposition of a monolith
  • Different models of integrations between services
  • 2 kinds of event architecture
  • Catastrophic failover  – and how to handle it
  • Why sometimes DRY is wrong in the world of microservices
  • Integration patterns for User Interface
  • Strangler pattern  – request mappings between legacy and the new system
  • How to split the database – 5 ideas
  • Report databases – 5 patterns
  • The need for deep automatization
    • Docker and dynamic environments
  • Mountebank  –  library to fake HTTP / TCP requests
  • Consumer-driven contract tests – remedy for end-to-end tests
    • Pact – library for CDC tests
  • MTBF and MTTR  – often is better to embrace failure
  • Graphite – a tool for generation and analysis of metric data – CPU, RAM, timings
  • Synthetic monitoring – production testing
  • Metrics importance – well-implemented metrics helps business to react to problems and make choices
  • Mulitple microservices authentication options
  • Conway’s law – how it affects microservices
    • How Conway’s law affected building Microsoft Vista
  • Bulkhead pattern – how to achieve isolation between components
  • Scaling databases options, both from read and write sides
  • Dynamic service register libraries – Consul and Eureka

Each chapter contains multiple topics that you want to add to your OneNote. I noted further appealing topics but I won’t bother you with them – I am sure that each of you will find something new and outstanding in that book.

But these are only raw points – book gets a lot when it’s taken as a whole. It is written concisely and cohesively, there is no unnecessary information here. After every chapter, you gain a deeper knowledge of microservices. After a book, you see a big picture.  Currently, I understand why Jimmy Bogard calls “Building Microservices” as “Domain Driven Design: The Good Parts”. This book contains everything to build a proper and well-living microservices system (or when not to).

To sum it up – you definitely should read this book. Soon (about summer 2018) Sam plans to release 2nd edition of the book. He will write about microservices in a frontend, serverless architecture and new solutions to migrate from monolith to microservices. Worth checking even more.

So slash the monolith!