ŷ

Jump to ratings and reviews
Rate this book

Microservice Patterns

Rate this book
The monolithic architecture works well for small, simple applications. However, successful applications have a habit of growing. Eventually the development team ends up in what is known as monolithic hell. All aspects of software development and deployment become painfully slow. The solution is to adopt the microservice architecture, which structures an application as a services, organized around business capabilities. This architecture accelerates software development and enables continuous delivery and deployment of complex software applications.

Microservice Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather than simply advocating for the use the microservice architecture, this clearly-written guide takes a balanced, pragmatic approach. You'll discover that the microservice architecture is not a silver bullet and has both benefits and drawbacks. Along the way, you'll learn a pattern language that will enable you to solve the issues that arise when using the microservice architecture. This book also teaches you how to refactor a monolithic application to a microservice architecture.

520 pages, Paperback

Published January 1, 2017

382 people are currently reading
2,100 people want to read

About the author

Chris Richardson

20books32followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
297 (43%)
4 stars
283 (41%)
3 stars
78 (11%)
2 stars
12 (1%)
1 star
9 (1%)
Displaying 1 - 30 of 70 reviews
Profile Image for Alexei Shmidman.
12 reviews
December 18, 2018
Too many words, too little information. The size of the book can be reduced dramatically. Examples show an implementation with a custom framework, rather than an architectural approach.
Profile Image for Sebastian Gebski.
1,151 reviews1,259 followers
September 17, 2019
Hmm, it was quite ... controversial.

What was meh?
* I was surprised that the author has used Eventuate to illustrate some of the concepts - I understand he's also an author of Eventuate, but if he meant to promote his tool this way, it should be expressed in a title/subtitle IMHO
* some of what I would call "core" patterns of microservices architecture were actually skipped - e.g. service discovery is barely covered; I don't refer to my own opinion on what does belong and what doesn't - as a reference I took the author's own website:
* TBH I find the actual service design as a key concern when it comes to building microservices architecture - this was "somehow" covered (mainly in the last chapter - refactoring to ms), but it's definitely lacking

What did I like?
* it IS practical - so many authors actually intentionally skip the most challenging parts of microservice architectures - e.g. service composition, data aggregation, problems with distributed state and sacrificing transactionality; but Richardson actually puts a lot of attention to these details
* it's not "overzealous" - author doesn't present the idealized, perfect world (that doesn't exist and never will)
* Java examples are easy to grasp
* author covers not only decomposing business logic into code containers, but also such aspects as testing or deployment - obviously these are huge topics, but he provides a decent starting point

The book provides a really reasonable perspective on the topics. It's one of the very few ones that actually look like they are built on actual real-life experience, not just unverified, "sandbox" theory.

3.75-4 stars (because I still think that the actual service design is the biggest challenge).
Profile Image for alper.
206 reviews60 followers
May 13, 2021
Yemeksepeti benzeri “Food to Go (FTGO)� firmasının sahip olduğu "monolith" yazılım uygulamasının & altyapısının "microservice"lere dönüşüm yolculuğu.

Chris Richardson üstadımız neredeyse her biri ayrı bir kitap olabilecek kadar geniş başlıkları tek bir kitapta toplamış. Bahsedilen konunun nasıl kullanılacağı, faydaları, alternatif yöntemlerin artıları eksileriyle birlikte ele almış. Daha önce başka yerlerde görmediğim güzel çözümler de mevcut. Yer yer kendi firmasının "Eventuate" reklamları araya girse de -alternatif çözümlerden kendi firmasınınki öne çıkan olmasa da onun üzerinden anlatmaya devam ettiği yerler mevcut ama bunda bir sakınca görmedim. :) Yüzeyselliğe düşmeden örneklerle birlikte microservice dünyasının tüm unsurlarına değinmiş. Tek bir kitapla altından kalkılması zor olan bu çalışmayı yazarın çok da güzel kotardığını düşünüyorum. Özellikle "github"da da paylaşılan ftgo projesiyle (proje java ile yazılmış ama kitapta nodejs ve farklı dil & teknolojilerle çözüm önerileri de mevcut) sunulması kompleks başlıklarda anlaşılabilirliği önemli ölçüde arttıryor. Bu tabii ki üzerinden bir tur daha geçmek zorunda olduğum gerçeğini değiştirmiyor. Çok konu var. Hazmı kolay değil.

Şunu da belirteyim: Kitap bir microservice güzellemesi değil. Bu dönüşümü yapmaya müsait bir iş modeli ve ihtiyaçlar silsilesi baz alınarak kurgulanmış. Her durum ve senaryo microservice kullanmayı gerektirecek diye bir kaide yok! (Şimdi yeni edindiğiniz çekici yavaşça yerine bırakın, zamanı geldiğinde!) Alıntımızı tekrar şuraya koyalım da yazılımda en rahatsızlık veren muhabbete de değinmiş olalım. Birkaç yılda bir (bunun aralığı gittikçe azalmakta 😰) yeni yumurtlanan "mucize"lere toptan selam olsun:
�1.6.1 Microservice architecture is not a silver bullet

Back in 1986, Fred Brooks, author of The Mythical Man-Month (Addison-Wesley Professional, 1995), said that in software engineering, there are no silver bullets. That means there are no techniques or technologies that if adopted would give you a tenfold boost in productivity. Yet decades years later, developers are still arguing passionately about their favorite silver bullets, absolutely convinced that their favorite technology will give them a massive boost in productivity.�(s.49)


Kaynak kod:
.

Eventuate:
Profile Image for Francois D’Agostini.
61 reviews11 followers
June 11, 2018
The book has a lot of content and goes into a lot of details.
While it's nice to have such a comprehensive view, I felt sometimes that the book was getting into too much details.
We also can see that the author would like us to use the frameworks he has built (like the Eventuate framework) as he goes into a lot of explanations. But for people looking for generic, standard patterns, some solutions seem to be specific to these frameworks
Also, this is very specialized to the Java world
That being said, I learned a lot and I would still highly recommend the reading of this book. Just don't hesitate to skip sections if you think you are getting drowned into details
Profile Image for Marcin.
24 reviews2 followers
July 18, 2021
"Microservices Patterns" is a broad introduction for everyone who wants to escape from monolithic hell and jumps into the microservices heaven. If you are new to it and want to start, I believe it's worth reading. On the other hand, if you are into the topic and have developed some in that approach, it won't be valuable. I decided to read about it to make sure if it's a title to recommend.

What I liked most is that the author recommends avoiding distributed architecture unless you suffer from monolithic diseases. That application architecture is not a silver bullet. Although it resolves some of the problems, it makes new ones. He doesn't try to make you a fool which is quite common for hyped topics. I appreciate it a lot. He writes about complicated aspects, whereas majority skips, like data consistency, transactional messaging, distributed querying, and testing. Maybe those topics are not fully covered, but it leaves the space to explore them on one's own with a basic understanding. I believe that you are going to avoid most of the newbie mistakes after the book.

What I didn't like. Well, I understand that author of the book developed the Eventuate framework that makes a job done out of the box. But come on. How the one who hasn't develop any saga would leverage the code that uses the framework and hides all of the gotchas? A lot of complex topics use the framework. I've felt disappointed.
Another thing that is worth emphasizing for me is that the design of a service is yet critical and tricky. Although the author mentions something about DDD, Event Sourcing, and so on, I had a feeling that the one who hasn't designed any microservice yet wouldn't treat the design as a first-class citizen after the reading.

To sum up, not perfect but probably one of the best in the microservices topic.
Profile Image for João Maia.
46 reviews5 followers
February 28, 2021
Os padrões apresenrados e técnicas são bem interessantes mas o livro é muito massivo por conta dos exemplos. Exemplos que acabam deixando o livro específico de tecnologia e datado.
Profile Image for Taras Petrytsyn.
81 reviews2 followers
January 20, 2021
A good book I would recommend as an entry point to an understanding of Microservices architectures and principles.
Profile Image for Bill.
227 reviews85 followers
April 20, 2021
Wouldn't recommend. The custom framework made the book seem like a shameless plug and obscured what are probably some good general ideas but made them tied to both Java (🤮) and also his specific implementation.
590 reviews11 followers
December 29, 2018
Not at all what I expected from a book called Microservice Patterns. I expected something like or , where different patterns are presented, pro and cons explained and one can use it as a reference book when one needs to consider different options one has to create his own microservices.

What I got is a wordy book that starts with a story about the reason we should write Microservices. It keeps going on to various examples of problems and how one can solve them. Generally, not a bad approach, but with this title one can assume the readers know what Microservices are and want to create them. Without an easy to spot structure in explaining the different patterns, one has to read the whole chapter to even find the important differences. That’s when the writing style kicks in and makes that experience dreadful. Whole paragraphs about what he is going to explain, not just at the beginning of a chapter, but again and again in the middle of an example. Explaining many of the patterns using the frameworks created by the author does not improve the book, it makes it a lot less useful.
Profile Image for Bartłomiej Falkowski.
230 reviews26 followers
May 29, 2024
I was aware of existence of this book for a long time. The reason was the brilliant microservices.io web page, with all the patterns listed there. It was finally time to read the original! In the end, nothing suprisingly revealing but still a solid and practical portion of knowledge about microservices.

What I liked:
- Touching non-obvious topics like monolith decomposition strategies. Most of the time people say "You should decompose your monolith model" but no one really says how to do it. I appreciate the attempt to dive in this topic, which is difficult to tackle (decompose by business capability vs decompose by DDD sub-domains; define microservice architecture based on the heuristics etc.)
- The best chapter was about managing transactions with sagas. Very detailed content plus breaking down the problem into prime factors. I attribute the greatest value to the description of countermeasures techniques for handling the lack of isolation. I didn't know that those simple tricks had already been named. Nice and elegant!
- Virtually all the chapters related to modelling, coding and patterns. I feel like this is the strong point of the author's knowledge. Pretty cool description of event sourcing and CQRS. Nice chapters about defensive programming and interprocess communication.
- Two chapters about testing! Testing is in general my thing so I can't stop applauding :)
- Practicality and developer-orientation. Code examples for basically everything. Half of the book is Java code.

What I didn't like:
- An artificial company whose history has accompanied us from the very beginning (guess what - they were working on migration from monolith to microservices!) was... well ... artificial.
- The quality of Ops chapters (deployability, observability and so on) was lower than Dev chapters.
- Although developer-orientation and massive amount of code was for most of the time fine, sometimes the examples were too naive and redundant.
- Promoting Evantuate framework too heavily.
- I missed a bit more space devoted to EDA and coupling. Things like internal domain events vs external integration events or services granularity.

Anyway, it's a heck of a book. I recommend it!
Profile Image for Yifan Yang.
43 reviews7 followers
November 28, 2023
This book is an exceptional resource for gaining both theoretical and practical knowledge about microservices. It is well-structured and comprehensively covers various aspects of microservices, including service decomposition, inter-process communications, transaction management using Saga, software architecture, Domain-Driven Design & Event Sourcing, Command Query Responsibility Segregation (CQRS), API composition & API Gateway, testing, deployment, and the transition from monolithic to microservice architectures. The concepts are presented in an easy-to-understand language, supplemented by clear diagrams that aid in comprehension. The examples, which predominantly use Java, are well-selected, coherently integrating all topics with clear code samples. These examples do not require significant cognitive effort to switch between different contexts.

However, one issue is that some code examples, like that for Saga and even publishing, being encapsulated within the author's framework, are not as straightforward as they could be. This can be a bit challenging for understanding, especially since the book is intended more as a knowledge resource than a tooling reference.

Another minor drawback is the book's repetitive descriptions of the same concepts across different chapters. I agree with other readers that the book could be made more concise by over 50 pages if these repetitions were eliminated.
Profile Image for Avraam Mavridis.
133 reviews24 followers
February 7, 2021
The typical microservices book is something like this: "what an amazing architecture, Amazon did this, Netflix did that...", "monolith is hell", a bit of DDD, a bit about event buses, done.

This book is a bit different because although it refers to these and the positive aspects, doesn't hide away the drawbacks. It also talks about data replication, distributed transactions, sagas, deployment patterns, testing patterns, configuration patterns and things like service discovery, service mesh, security, protocols for communication between services, and although it's not a deep dive into these topics the author spends quite a few pages, most books on the topic dont.

In the negatives, the author demonstrates some of the concepts using a framework he wrote. It didn't bother me that much because for me more important was to read some theory rather than the concreate implementation details.

It's a 4.5.
1 review
November 29, 2020
I really liked the way Chris connected several topics about microservices architecture in a single book, giving to the reader a clear picture of the whole ecosystem around microservice architecture.
The book is easy to read and the concepts are well explained.

I honestly appreciated a lot the coding examples, despite criticized by some. They show a way to put into practice what is explained teorethically. The reader can decide to go through or just skip them, based on the interest, but they fill the gap between guidelines and real world and that's a plus.

The incremental and pragmatic approach used makes what you learn immediately usable in the daily job.
Profile Image for Dmitry.
184 reviews8 followers
April 6, 2022
4.5/5, то есть значительно лучше, чем ожидалось. С одной стороны, первые две главы весьма водянисты, описание секретов и аутентификации - курам на смех, бесстыдная реклама своего фреймворка - без комментариев. С другой - куда более глубокая проработка вопроса, чем у Ньюмена, подробные технические примеры почти в каждой главе, включая главу про с k8s. Описаны саги, CQRS, Event Sourcing, подходы к разделению монолита и основные возникающие проблемы. Картина мира может и не перевернулась, но прочел с удовольствием
Profile Image for Vinicius Souza.
53 reviews1 follower
September 22, 2020
Best book I've read about microservices. It covers almost everything related to it with a good depth. The only downside I see is the lack of more code examples but it would require a much larger book. I definitely recommend to anyone dealing with microservices
Profile Image for Nafise Eskandani.
29 reviews16 followers
January 14, 2020
Great book for anyone who wants to research on microservices. Maybe not a good book(in terms of having too many details) for the ones who only want to use this architecture in practice.
Profile Image for Jeferson Urbieta.
5 reviews
July 30, 2020
Este livro é muito bom para mostrar os conceitos do padrão de microserviços e apresentar como construilos com qualidade. Ele tambem mostra formas de migrar um monolito para a arquitetura de microserviços de um jeito possivel.
16 reviews2 followers
January 4, 2019
It was an interesting book that helped me a lot to understand some old DDD concepts like CQRS, EventSourcing, Saga etc applied in a microservices architecture. It also helped me a lot to understand how should you build a microservices architecture, from where you should start, how you should split in your monolith system into microservices and which are the criterias to build a new microservice.
Profile Image for Nilendu Misra.
321 reviews16 followers
October 19, 2023
Wittgenstein famously said, "limits of my language are the limits of my world". For the majority of technology leaders, sadly, "limits of their silence are the limits of their understanding". The moment a jargon is casually verbalized, it stops being understood well. Just ask someone about how to address transactional complexity in so-called microservices land, where domain entities are somewhat scattered across various services. Anyone who just read a blog post would likely say "Saga". Anyone who built it would probably say "We used a messaging tool to transfer data". Anyone who'd built it and scaled it would take a pause and will go over how this is essentially a 2-phase commit problem, except to be solved with code rather than in database. Therefore, after two years of struggle with "replication lag" at scale they just refactored some objects and accepted about 0.1% failures addressed out-of-band with compensating transactions. Hire the third person!

Best modern software architecture book out there. Competence is reflected in rational negation - buzzwords are cool but what is the catch? If someone just excitedly lays out positives of a certain technology principle - say, microservices, or react - s/he could be a salesperson or naive or both! Neither would survive the long-term impact of a critical decision taken with, basically, "mimetic copying" - just because others were doing it. You would trust your leader more when she can contextualize the real-life challenges of a proposal. This is even more relevant for any _recent_ trend embraced suddenly.

This book thoughtfully compiles, explains a set of techniques you need to know as a CTO/VPE to build modern apps. Other arch books are too high level, or do not cover the breadth or preaches without practicing data. This has concrete design and code examples.

Most importantly, it shares where something is not a good fit. This is critical as we engineers choose shiny tech, the usage profile changes with time, and median tenure of engineers is 4 years. The choice, say - frontend-for-backend with 3 different API gateways, becomes someone else's problem down the lane. That person now hires 15 platform engineers to redo it. There goes the entire future cash flow.

My fav interview question is "What is the drawback of your favorite tech/framework/tool, and share a real-life example with how you conquered it". Every technology has its 'Annus horribilis'. Best engineers may not know Lamport Clock, but empirically or passionately answer how they successfully overcame the challenge of their go to technology in a real-life, complex domain. This book follows that philosophy and teaches how to do that with at least 20 or more modern technology primitives.

It shines the brightest especially in three areas - one, microservices essentially as a distributed architecture - and all the associated challenges thereof; two, how to minimize overhead-per-service - e.g., by, first, deploying a API gateway, and then, if polyglot, using a "service mesh"; three, how to deploy and manage with modern primitives like deploy-as-container and why that minimizes the bootstrap time. The chapter on observability/monitoring and looking at it from six different angles - distributed tracing to aggregated log and exception reports - alone is worth the price of entry. I have not come across a single book that walks through the ENTIRE lifecycle - with honest trade-off analysis and working domain model/code.

Simply brilliant.
Profile Image for Ryan Radloff.
4 reviews
May 2, 2025
This book was... a book?

I picked it up for a work book club, following two of my favorites - and . Needless to say, this book did not live up to the standard set by those two.

My two key issues with this book when juxtaposed to the aforementioned texts are:
* Richardson frequently references later chapters throughout the book, indicative of, in my opinion, a relatively poorly planned structure. The amount of "This can be addressed by X, which we talk about in chapter (some chapter 70+ pages deeper in the book)" makes the content incredibly difficult to digest, especially if you don't already possess a working knowledge of the concepts he is attempting to explain.

* To me, the best books on system design patterns will either be highly generalizable or be centered on popular technologies relevant to today's development landscape. Unfortunately, Richardson has a rather nasty habit of using his largely irrelevant platform, Eventuate, in nearly every example - instantly dating it and limiting applicability.

These two things compound to make a book that fails to engage the reader, even by technical literature standards.
223 reviews6 followers
July 14, 2019
We have started breaking a monolithic application into corresponding microservices. There were quite a few concerns we faced from simplifying the overall architecture to the need of an aggregation layer to making it scalable to testing strategies and so on. If you need answers to such questions, this book is totally relevant for you.

This book is heavy in terms of its technical strength and expertise. I've had to read and reflect on many points it illustrates. Concepts like scale cube, hexagonal architecture and request/response vs publish/subscribe, though abstract, are explained very well. The information on sagas for dealing with transactions, event-driven systems and testing strategies allow you to come up with convincing architecture for all your teams.

Material on OAuth, API composition, CQRS pattern will be appreciated by even those who have just a few years of development experience - a testimony to the simple language used throughout the book.

A few repetitions could've been avoided in the book.

I'm going to refer to many points in this book in order to get the best out of it. An absolutely in-depth technical book - thanks to the author.
Profile Image for Димитър Димитров.
2 reviews
June 26, 2020
Определено една от най-добрите книги върху темата. Освен фундаментите при изграждането на архитектура от микросървиси Крис Ричардсън, дава и не малко конкретни примери.

Авторът също така обръща внимание на теми, които не са задължителни при изграждането на подобен вид архитектура, но биха били полезни в конкретни случаи - Domain Driven Design, Event Sourcing и CQRS.

Даваните примери са изцяло Java ориентирани (Java код, както и библиотеки писани за Java). Това обаче не трябва да е спирачка за човек, работещ с друг език и платформа. Основните идеи са добре представени и реално могат да се реализират с почти всеки технологичен стек.

В последните няколко глави също така е застъпена изключително важната тема за миграция на вече съществуваща монолитна система, към система изградена от микросървиси.


47 reviews
Read
May 18, 2021
Microservice Patterns by Chris Richardson tries to cover a lot of patterns related to microservices implementation and maintenance, their benefits and drawbacks, drawbacks and benefits of monolith architectures, and approaches for migration to microservices.
I liked that a lot of patterns from this book are practical, some of them, like sagas, were new to me, and I definitely will consider using them. Also, I enjoyed that the author didn't try to escape difficult topics like losing transactionality. But there was one item that I wasn't expecting from this book - the author used through this book his own framework, which isn't popular at the moment and won't be approved soon in a lot of companies.
I would recommend this book to software engineers who want to bring more clarity to their knowledge about microservices.
Profile Image for Sergey Yurov.
2 reviews
Read
April 20, 2020
Давно искал книгу по микросервисам. Чтобы не голая теория, а с примерами, примерами проекта и фреймворков, которые можно применить для решения задачи.
Данная книга будет полезна для всех разработчиков от junior до senior, так как вы найдете в ней все рецепты по проектированию системы микросервисов, а также как рефакторить монолит. Примеры в книге построены на Java, что для меня особо важно, так как я программирую на ней.

Книга построена на одном проекте, здесь история всего его изменения, начиная с того как пришли к выводу применять микросервисы, как учились их готовить. Материал данной книги еще долго не устареет. А самое главное, очень многое из этой книги будет встречаться на собеседованиях.
Profile Image for Svetlio Blyahoff.
38 reviews3 followers
December 3, 2019
A very good read. Very enlightening on the peculiarities and main issues of developing a micro-service architecture apps. It's as well very helpful to use as an index and get back to whenever a given topic arises in practice since topics are well structured and separated.

As a small drawback I'd point out the strict coupling of the book terminology and examples to the Java (Spring) ecosystem. Also the author have used the opportunity to show of his framework. That's not bad at all. It might as well be very helpful to a person that's strictly bound to the Spring ecosystem.

However, this not being my case I still drew a good knowledge from it and will get back to it when needed.
Profile Image for Christoph Kappel.
439 reviews9 followers
April 23, 2021
This book would normally be a no-brainer five stars which every developer involved in microservices should read, but..

The author kind of loses the track, when he talks about all the related things to eventing and sagas his framework addresses (I will not mention it here again) and basically falls into manual/advertising mode, which makes the whole thing a bit of annoying.

The other parts are well written, the examples are crisp and clear and should be pretty easy to adapt. And some of the explanations really helped me to understand some aspects and connect them for the first time.

For me it is a bit too spring-y, but that's probably personal taste.

Profile Image for David Robillard.
141 reviews8 followers
March 29, 2019
This is great book if you're new to microservices. If, on the other hand, you're already running microservices in production, then I'd skip this book. The author comes from a developer background and it shows in his examples. Which is sometimes good, sometimes not. I'd have preferred to have more SRE and DevOps culture in the book. And please don't take anything for granted with regards to security. OAuth 2.0 is simply not correctly explained in the book. Considering the amount of information this book contains, missing OAuth is a minor issue in what is quite an achievement.
Profile Image for Hesham Amin.
32 reviews4 followers
October 25, 2020
A very good coverage of the different advantages and challenges that microservices architecture brings. It's an essential reference to avoid a lot of pain when moving to this challenging architecture.
The book uses the eventuate framework for a lot of the examples which might not be very interesting for readers who use other technologies than Java. Also a fair amount of repetition could have been avoided between topic introductions and their details.
Don't dive into microservices without reading this book or one that covers similar topics.
1 review
February 4, 2022
Great book, it covers a lot of aspects and go pretty in depth in each.
Every section is well explained and it clarified me a lot of doubts regarding the transition from a monolith architecture to a microservice one.

The only downside I've noticed is that the practical examples are too tight and vertical to the writer's framework. Sometimes an implementation from scratch or on top of a widely adopted framework would be more appreciated.
Displaying 1 - 30 of 70 reviews

Can't find what you're looking for?

Get help and learn more about the design.