What is the difference between SOA and microservices?

Service-oriented architecture (SOA) and microservices are both architectural approaches to building software systems, but they differ in several ways:

1. Size and scope: Microservices are smaller and more focused than services in SOA. In microservices, each service delivers a very specific business capability while in SOA, services are typically larger in scope.

2. Communication: In SOA, services often communicate with each other using the enterprise service bus (ESB), whereas in microservices, each service communicates directly with other services using lightweight communication mechanisms.

3. Complexity: SOA is often associated with complex, monolithic applications, while microservices can be more agile and easier to maintain due to their smaller size and modular architecture.

4. Governance: In SOA, there is often strict governance around service definitions, interfaces, and protocols. In contrast, microservices are often simpler and more flexible, with less formal governance.

5. Technology: SOA is often associated with established middleware and integration technologies, such as web services and SOAP, while microservices are often built using newer technologies, such as REST APIs and containerization.

Overall, microservices can be seen as an evolution of SOA, emphasizing smaller, more focused services that are easier to develop, maintain, and scale.

Publication date: