The following table lists some of the differences between SOA and microservice architecture:
Service-oriented Architecture (SOA) |
Microservice architecture |
Focuses on imperative programming |
Focuses on a responsive actor programming style |
Its models tend to have an outsized relational database |
Microservices frequently use NoSQL or micro-SQL databases (which can be connected to conventional databases) |
In SOA, ESB implements communication between mutually-interacting software |
In microservices, independent processes communicate with each other using language-agnostic APIs |
It is easier to deploy new versions of services frequently, or scale a service independently |
Services can operate and be deployed independently of other services |
SOA has ESB, which could be a single point of failure that impacts the entire application |
Microservice architecture has a much better fault-tolerance system |
Data storage is shared between services |
Each service has its own data storage |