What does it mean that shifting to microservices creates a run-time problem?

Technology CommunityCategory: Load BalancingWhat does it mean that shifting to microservices creates a run-time problem?
VietMX Staff asked 3 years ago

If you are unable to design a monolith that is cleanly divided into components, you will also be unable to design a microservice system.

Dividing your system into encapsulated, cohesive, and decoupled components is a good idea. It allows you to tackle different problems separately. But you can do that perfectly well in a monolithic deployment (see Fowler: Microservice Premium). After all, this is what OOP has been teaching for many decades! If you decide to turn your components into microservices, you do not gain any architectural advantage. You gain some flexibility regarding technology choice and possibly (but not necessarily!) some scalability. But you are guaranteed some headache stemming from (a) the distributed nature of the system, and (b) the communication between components. Choosing microservices means that you have other problems that are so pressing that you are willing to use microservices despite these problems.