Zarówno SOA (Service-Oriented Architecture) jak i mikrousługi rozkładają systemy na usługi, ale różnią się szczegółowością, własnością danych i sposobem komunikacji między usługami.
Zarówno SOA (Service-Oriented Architecture) jak i mikrousługi rozkładają systemy na usługi, ale różnią się szczegółowością, własnością danych i sposobem komunikacji między usługami.
| Aspekt | SOA | Mikrousługi |
|---|
| Szczegółowość | Gruba | Drobna |
| Komunikacja | Często poprzez ESB | Lekkie (REST/gRPC/messaging) |
| Dane | Często wspólne | Baza danych na usługę |
| Zarządzanie | Scentralizowane | Zdecentralizowane |
| Protokół | Często SOAP/XML | Zwykle 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)
Mikrousługi stosują zasadę "smart endpoints, dumb pipes": inteligencja znajduje się w usługach, a transport pozostaje prosty. SOA często centralizuje logikę w ESB.
Nie wprowadzaj ponownie wąskiego gardła w stylu ESB. Ciężka centralna magistrala zmienia mikrousługi z powrotem w SOA z dodatkowymi krokami.
Różnica dotyczy głównie decentralizacji: mikrousługi przenoszą własność danych i logikę do każdej usługi, aby uniknąć centralnego wąskiego gardła, które nękaało wiele wdrożeń SOA.
Zrozumienie tego zapobiega przypadkowej przebudowie sprzęgła SOA pod etykietą mikrousług.