Both SOA (Service-Oriented Architecture) and microservices decompose systems into services, but they differ in granularity, data ownership, and how services communicate.
Both SOA (Service-Oriented Architecture) and microservices decompose systems into services, but they differ in granularity, data ownership, and how services communicate.
A library of IT interview questions with detailed answers — from Junior to Senior.
Donate| Aspect | SOA | Microservices |
|---|
| Granularity | Coarse-grained | Fine-grained |
| Communication | Often via an ESB | Lightweight (REST/gRPC/messaging) |
| Data | Frequently shared | Database per service |
| Governance | Centralized | Decentralized |
| Protocol | Often SOAP/XML | Usually HTTP/JSON, gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
Microservices follow the "smart endpoints, dumb pipes" principle: intelligence lives in the services, and the transport stays simple. SOA often centralizes logic in an ESB.
Don't reintroduce an ESB-style bottleneck. A heavyweight central bus turns microservices back into SOA with extra steps.
The difference is mostly about decentralization: microservices push data ownership and logic into each service to avoid the central bottleneck that plagued many SOA deployments.
Understanding this keeps you from accidentally rebuilding SOA's coupling under a microservices label.