Drawbacks
No technology is perfect and using microservices has its drawbacks. As one would say, there are no silver bullets.
We mentioned that microservices have their own database schema. Therefore, you can't have transactional updates for your domain models like you usually do when dealing with a monolithic application using one database. Your system will eventually end up being consistent and that comes with its own bag of challenges.
Implementing a change that will end up touching more than one service has its own complexity. In a monolithic application, these things are quite straightforward. All you have to do is change the modules required and then deploy all of them in one go. But for a distributed microservices system, where there are dependencies between services, you need to plan the upgrade. You will end up deploying the service that all the other ones depend upon first and then repeat this step until the last required service is upgraded. Luckily, such changes are not very...