Can build multiple different microservices in different languages since they communicate to each other via Rest API which is language independent
Best Case for Microservices
When the application is very big and there are teams who would work on each part of the application, then it is easy to maintain that.
It is easily scaled up since each micorservice is deployed on a different box
Possible Disadvantages
In a monolithic architecture communication is small and direct while in micorservices there is a need to communicate to other API over network. (So slow compared to monolithic).
Code like constants or small utility has to be re-added at all places which causes repeat of code.
If network is slow then your API may take a big hit
Challenges while build Microservcies
Challenegs in inter communicating microservcies
Changes has to be made at all the endpoints that consume these microservices
All the microservices that consume microservices has to be deployed at same time.
This causes the use of Feature flag which enables and disables the feature (which reduces the code quality if future perspective)