Både SOA (Service-Oriented Architecture) och mikrotjänster dekomponerar system i tjänster, men de skiljer sig när det gäller granularitet, dataägarskap och hur tjänster kommunicerar.
Både SOA (Service-Oriented Architecture) och mikrotjänster dekomponerar system i tjänster, men de skiljer sig när det gäller granularitet, dataägarskap och hur tjänster kommunicerar.
| Aspekt | SOA | Mikrotjänster |
|---|
| Granularitet | Grovkornig | Finkornig |
| Kommunikation | Ofta via ESB | Lättviktig (REST/gRPC/messaging) |
| Data | Ofta delad | Databas per tjänst |
| Styrning | Centraliserad | Decentraliserad |
| Protokoll | Ofta SOAP/XML | Vanligtvis 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)
Mikrotjänster följer principen "smarta slutpunkter, dumma rör": intelligensen finns i tjänsterna och transporten förblir enkel. SOA centraliserar ofta logiken i en ESB.
Införskaffa inte på nytt en ESB-liknande flaskhals. En tung central buss förvandlar mikrotjänster tillbaka till SOA med extra steg.
Skillnaden handlar främst om decentralisering: mikrotjänster flyttar dataägarskap och logik till varje tjänst för att undvika den centrala flaskhalsen som plågade många SOA-implementeringar.
Att förstå detta håller dig från att av misstag bygga om SOA:s koppling under en mikrotjänstetikett.