Pros:
- Freedom to use different technologies
- Each microservices focuses on single capability
- Supports individual deployable units
- Allow frequent software releases
- Ensures security of each service
- Mulitple services are parallelly developed and deployed
Cons:
- Increases troubleshooting challenges
- Increases delay due to remote calls
- Increased efforts for configuration and other operations
- Difficult to maintain transaction safety
- Tough to track data across various boundaries
- Difficult to code between services