The Microservices Architecture has been introduced a couple of years. And it has been adopted by many enterprises. There are many benefits, such as coupling the services, it reduces the complexity of the application, and speeding up the development and deployment. But when people are enjoying the benefit of the Microservices Architecture, they also suffer some drawbacks. One of the major issues is waste a lot of memory, each of the microservice is running inside a container, which has a minimum charge of the memory, no matter your service built with Spring Boot or Nodejs. If you breaking the service into too small, there are will be a lot of memory overhead. Another problem is data management. To keep transactions or read data across multiple services, there are many design patterns are there, such as Saga or CQRS, but no matter which one, it is still very complex to implement. That's why people will prefer the Monolithic Architecture pattern at the starting point and break it down into microservice when applications size is growing.