SOA (Service-Oriented Architecture) et microservices décomposent les systèmes en services, mais ils diffèrent par la granularité, la propriété des données et la façon dont les services communiquent.
SOA (Service-Oriented Architecture) et microservices décomposent les systèmes en services, mais ils diffèrent par la granularité, la propriété des données et la façon dont les services communiquent.
| Aspect | SOA | Microservices |
|---|
| Granularité | Granularité grossière | Granularité fine |
| Communication | Souvent via un ESB | Léger (REST/gRPC/messaging) |
| Données | Fréquemment partagées | Base de données par service |
| Gouvernance | Centralisée | Décentralisée |
| Protocole | Souvent SOAP/XML | Généralement 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)
Les microservices suivent le principe "endpoints intelligents, tuyaux simples" : l'intelligence réside dans les services, et le transport reste simple. La SOA centralise souvent la logique dans un ESB.
Ne réintroduisez pas un goulot d'étranglement de style ESB. Un bus central volumineux transforme les microservices en SOA avec des étapes supplémentaires.
La différence porte surtout sur la décentralisation : les microservices confient la propriété des données et la logique à chaque service pour éviter le goulot d'étranglement central qui a entravé de nombreux déploiements SOA.
Comprendre cela vous empêche de reconstruire accidentellement le couplage de la SOA sous une étiquette microservices.