Tbh mostly microservices solves two issues for me:
- You can scale resource-heavy operations without an impact of scaling everything else.
- You kind of ”force” people to keep things contained, instead of making everything interdependant. Which helps containing issues with updates to certain functionality to only have an impact on that functionality.
You could do #2 in a ”monolithic” setup as well (by doing modules or libraries or something), it just never works out that way in practice