In earlier posts about Microservice Architecture we discussed what Microservices are in general, how these can be used to improve your delivery process and how development of Microservices fit with agile methods. In this post we’ll compare Microservice Architecture with the ‘traditional Service Oriented Architecture’.
The truth about Microservices
It is true that Microservices are smaller services than services typically found in a Service Oriented Architecture, but that is about as far as this comparison goes. The Microservices Architecture, or simply MsA, includes certain additional concepts surrounding these ‘smaller services’ and this is where the differences with SOA begin to show.
SOA and ESB
An SOA is most often implemented on an Enterprise Service Bus (ESB). Such an ESB is almost always implemented centrally by one department in the organization. This department is made responsible for managing the scale and complexities that come with a centralized ESB.
To handle these complexities all kinds of processes are formed around the ESB, for example service lifecycle management, governance processes, etc. These processes are not necessarily a bad idea and to a certain degree they are all needed to make sure that the benefits of SOA can be harvested.
However, the downside is that all too often this leads to institutionalization of the ESB in the form of a Center of Excellence (CoE) which develops its specific service-frameworks and monopolizes all the integration effort of the organization. The common effect of this is that when the organization starts scaling up the use of the ESB, they experience a drop in effectiveness and velocity of the development team.
Why did we even do SOA and ESB in the first place?
Find out in our next blogpost: “Why Microservices Architecture?”