Introduction
Laymen Explanation
The Microservice Architecture is foggy. No matter what you do, it always seems wrong, and you may hit the wall accidentally behind the fog. It doesn’t matter how you play the game and how many steps you take, you will never see through the fog, and have no way to find the end of the game.
This article sorts out various key technical and neglected issues in the entire microservice architecture. Helping companies and organizations understand the challenges facing by introducing microservice architecture.
Technical Explanation
In the view of architecture design, the service splitting of microservice thinking is an obvious problem to be solved
According to experience, it is easy to find out the result is just a bunch of distributed monoliths at the microservice architecture, without the slightest benefit of microservice. It even attracted many challenging problems and fell into a trap that was difficult to turn over.
Points to be noted
Most people usually choose to ignore or give up the data decoupling work at the data layer. You should know that data is the most weighty part of the application. Only the decoupling of data can truly achieve the service splitting of the microservice architecture.
The microservice architecture is the design of a decentralized system, which means that service status and data are not centralized. In addition to the state consistency problem between services, we must also consider data synchronization and sharing issues.
Theoretically, the problem that cannot be solved by the decentralized architecture is latency. Meaning that latency will always occur, but only the acceptance delay degree of the target application and whether it is acceptable. If your application cannot accept these delays and needs more extreme immediate needs, you have to rely on stateful service design. However, the stateful service is not right in scalability and fault tolerance, and it can easily become a performance bottleneck and a beach instability. So, due attention must be given for stateful design.
Reference
https://www.cncf.io/blog/2020/09/10/why-do-we-hit-a-wall-when-introducing-microservice-architecture/