- Multiple execution environments
- Complexity in communication between services
- Managing the versioning of each service and it's dependent services.
Although services are easily to scale and change independently, they are hard to reconfigure globally, which means the application as a whole is hard to change...
Often switching to microservices means reducing the complexity of communication between teams at the expense of increasing the complexity of communication between services.