I was recently invited to review the book Embracing Microservices Design by Ovais Mehboob
Ahmed Khan, Nabil Siddique, Timothy Oleson.
Fantastic book, as the book preface very well stated Embracing Microservices Design targets architects and developers who want to design and build microservices-based applications following the right principles, practices, and patterns and avoiding the fallacies and anti-patterns that may lead to bad implementation.
This is an excellent book for anyone who is interested to learn about microservices design patterns or is planning to work on microservices on their new project, or even looking to move their existing monolithic app into microservices architecture design.
I have seen organisations rushing into developing microservices architecture, not fully understanding the complexity of microservice architecture and failing due to a lack of fundamental domain knowledge needed to build reliable microservices. It is vital to understand the anti-patterns and pitfalls of microservices before you start architecting and developing microservices.
This book addresses challenges and anti-patterns that you will normally face while adopting microservices. If you are new to microservice architecture or even have previous experience, I will highly recommend reading this book before you think about the technical design and implementation of microservices. This book is equally useful for intermediate to advanced users. Ovais along with Nabil and Timothy have authored this superb book that can steer you in the right direction from day one when it comes to designing and developing microservices.
This book talks about the philosophy of microservices design principles that are essential and explains how you can build teams that will deliver value faster to your customers. It also talks about challenges that you will face when adopting microservice architecture as well as vital components needed when it comes to microservices design.
Often microservice fails due to poor leadership, which this book addresses very well. Understanding domain driven design (DDD) is essential while design microservices architecture, what I like is that there is a whole chapter that addresses this area. This book intuitively addresses the architecture pitfalls and how not to over architect microservices.
This also prepares you for the fundamentals of re-platforming apps and talk about old techniques. The book addresses data design challenges, embracing polyglot persistence, denormalization and explains CQRS. Also helps you understand transaction handling, managing consistency, concurrency, and reporting.
Communication is one of the greatest challenges when it comes to microservices design, this book talks about the fundamentals of microservices communication, and event design pitfalls, API gateways and request timeout handling patterns, all vital components needed for reliable communication. Book also talk about serious concerns relating to security, resiliency, idempotency and monitoring.
Finally, when it comes to deployment, this book guides you on deployment strategy, IaC and modern DevOps principles. Also helps you set up the best test strategy suited for your needs as well as shifting left your testing, unit tests, end to end testing and load testing.
I will highly recommend anyone embracing microservice architecture to read this book to have the essential knowledge needed for a solid foundation of your microservice architecture design.
#microservices #embracingmicroservices #microservicesarchitecture #microservicesantipattern