Microservice architecture is not a silver bullet

source: Microservices vs Monolithic architecture


Microservice architecture is a good concept but it’s not the best for everything. Sometime the monolith or another concept is better.

Microservice does not equal to architecture

Decoupling the whole thing to smaller independent components is more important for Uncle Bob. These components can be called as “micro-services”, for example, let’s see a citation from him again:

The dark side of microservices

Microservice architecture has a lot of benefits, but sometime it’s like a shrew. Let’s see citations from book Microservices Patterns:

1.1.2 The benefits of the monolithic architecture

The monolithic architecture looks good, but…

1.1.3 Living in monolithic hell

The simple monolithic way goes to hell, because the architects and developers aren’t obliged to make clean architecture…

1.5.2 Drawbacks of the microservice architecture

The microservice way solves a few things, but introduces new problems…

1.6.1 Microservice architecture is not a silver bullet

So, we are in trouble :-(

1.6.3 Overview of the Microservice architecture pattern language

We have to spend more time for deployment, test and troubleshooting. See my earlier article: The Three Thirds: the cost model of modern SW development

3.1.3 Evolving APIs

Managing a bunch of API versions parallel is nightmare.

4 Managing transactions with sagas

Distributed transaction handling is a challenge.

4.1.3 Using the Saga pattern to maintain data consistency

The Saga pattern is a good tool, but it cannot solve all the problems.

4.2.1 Choreography-based sagas

Starting with this is more simple than Orchestration-based saga, but after a while it will become chaotic.


4.3 Handling the lack of isolation

It’s hard to isolate distributed transactions.

4.3.1 Overview of anomalies

The typical isolation problems:

5. Designing business logic in a microservice architecture

Implementing the business logic is not an easy ride.

Final words

This article obtained the rational limit, but at least highlights several microservices problems. Instead continuing citations, reading the Microservices Patterns is better.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store