There are pros and cons to the micro-services architecture. To your point it is not a black or white solution. Our systems are fairly large and over-engineered.
Often switching to microservices means reducing the complexity of communication between teams at the expense of increasing the complexity of communication between services.
Often switching to microservices means reducing the complexity of communication between teams at the expense of increasing the complexity of communication between services.