Sia SOA (Service-Oriented Architecture) che microservizi scompongono i sistemi in servizi, ma differiscono per granularità, proprietà dei dati e modalità di comunicazione tra servizi.
Sia SOA (Service-Oriented Architecture) che microservizi scompongono i sistemi in servizi, ma differiscono per granularità, proprietà dei dati e modalità di comunicazione tra servizi.
| Aspetto | SOA | Microservizi |
|---|
| Granularità | Coarse-grained | Fine-grained |
| Comunicazione | Spesso via ESB | Lightweight (REST/gRPC/messaging) |
| Dati | Frequentemente condivisi | Database per servizio |
| Governance | Centralizzata | Decentralizzata |
| Protocollo | Spesso SOAP/XML | Solitamente 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)
I microservizi seguono il principio "smart endpoints, dumb pipes": l'intelligenza risiede nei servizi e il trasporto rimane semplice. SOA spesso centralizza la logica in un ESB.
Non reintrodurre un collo di bottiglia in stile ESB. Un bus centrale pesante trasforma i microservizi di nuovo in SOA con passaggi extra.
La differenza riguarda soprattutto la decentralizzazione: i microservizi trasferiscono la proprietà dei dati e la logica in ogni servizio per evitare il collo di bottiglia centrale che ha affetto molti deployment SOA.
Comprenderlo ti impedisce di ricostruire accidentalmente l'accoppiamento di SOA sotto un'etichetta di microservizi.