Atât SOA (Service-Oriented Architecture) cât și microserviciile descompun sistemele în servicii, dar diferă în granularitate, proprietatea datelor și modul în care serviciile comunică.
Atât SOA (Service-Oriented Architecture) cât și microserviciile descompun sistemele în servicii, dar diferă în granularitate, proprietatea datelor și modul în care serviciile comunică.
| Aspect | SOA | Microservicii |
|---|
| Granularitate | Granuță grosieră | Granuță fină |
| Comunicare | Adesea prin ESB | Ușor (REST/gRPC/messaging) |
| Date | Frecvent partajate | Bază de date per serviciu |
| Guvernare | Centralizată | Descentralizată |
| Protocol | Adesea SOAP/XML | De obicei 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)
Microserviciile urmează principiul "smart endpoints, dumb pipes": inteligența se află în servicii, iar transportul rămâne simplu. SOA adesea centralizează logica într-un ESB.
Nu reintroduceți o strangulare în stil ESB. Un magistrală centrală grea transformă microserviciile înapoi în SOA cu pași suplimentari.
Diferența este în principal despre descentralizare: microserviciile împing proprietatea datelor și logica în fiecare serviciu pentru a evita strangularea centrală care a plăgit multe implementări de SOA.
Înțelegerea acestui lucru te oprește să reconstruiești accidental cuplajul SOA sub o etichetă de microservicii.