Introducing an abstraction layer always comes at a cost. The same rule applies to Service-Oriented Architecture. It's easy to see the abstraction costs when looking at Enterprise Service Bus, web services, or message queues and brokers. What may be less obvious is that microservices also come at a cost. Their cost is related to the Remote Procedure Call (RPC) frameworks they use and the resource consumption related to service redundancy and duplication of their functionality.
Another target of criticism related to SOA is the lack of uniform testing frameworks. Individual teams that develop the services of an application may use tooling unknown to other teams. Other issues related to testing are that the heterogeneous nature and interchangeability of components mean there is a huge set of combinations to test. Some combinations may introduce edge cases that are not typically observed.
As the knowledge about particular services is mostly concentrated in a single...