Challenges of Microservices
There are always tradeoffs when making an architectural migration. Although the benefits of microservices outweigh the challenges, it’s still important to consider expected challenges.
Service management & complexity
Utilizing microservices means more moving pieces in the system, all of which may be disconnected. This requires implementation of sophisticated strategies such as service discovery, orchestration, and other management necessities.
Inter-service communication
Services communicating with each other can bring about issues with latency, message formats, network reliability, and more. These must be accounted for through the use of APIs and well-designed networking configurations, so as to guarantee good performance and reliability.
System-level testing
Unit-testing each service independently is significantly easier with microservices. However, testing integration of multiple services requires additional orchestration that you could likely avoid with monolithic applications.