Zowel SOA (Service-Oriented Architecture) als microservices decomponeren systemen in services, maar ze verschillen in granulariteit, data-eigenaarschap en hoe services communiceren.
Zowel SOA (Service-Oriented Architecture) als microservices decomponeren systemen in services, maar ze verschillen in granulariteit, data-eigenaarschap en hoe services communiceren.
| Aspect | SOA | Microservices |
|---|
| Granulariteit | Grof-korrelig | Fijnkorrelig |
| Communicatie | Vaak via een ESB | Lichtgewicht (REST/gRPC/messaging) |
| Data | Frequent gedeeld | Database per service |
| Governance | Gecentraliseerd | Gedecentraliseerd |
| Protocol | Vaak SOAP/XML | Meestal 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 volgen het "smart endpoints, dumb pipes" principe: intelligentie bevindt zich in de services, en het transport blijft eenvoudig. SOA centraliseert logica vaak in een ESB.
Voer niet opnieuw een ESB-achtige bottleneck in. Een zware centrale bus verandert microservices terug in SOA met extra stappen.
Het verschil gaat vooral over decentralisatie: microservices duwen data-eigenaarschap en logica in elke service om de centrale bottleneck te vermijden die veel SOA-implementaties plaagde.
Het begrijpen hiervan houdt je ervan af om per ongeluk SOA's koppeling onder een microservices-label opnieuw op te bouwen.