Advantages
There are many known expected benefits from Microservice architecture, such as:
Offers low coupling due to a high degree of isolation
Enhanced modularity
Failure in one service does not impact the whole system as they are isolated
It provides higher flexibility
It provides a very high degree of scalability
Ease of modification can result in faster evolutionary iterations
It can facilitate improved error handling
Disadvantages
While Microservices simplify much of the development process,, they can also cause new forms of complexity.
A higher chance of failure exists during communication between different services
Difficult to manage a large number of services
Needs to solve new problems, such as network latency and load balancing, and other issues similar to a distributed architecture
Complex testing over a distributed environment
Implementation requires much more time
Complex dependency management if number of services is high
1.0-JP