Tanto SOA (Service-Oriented Architecture) quanto microsserviços decompõem sistemas em serviços, mas diferem em granularidade, propriedade de dados e como os serviços se comunicam.
Tanto SOA (Service-Oriented Architecture) quanto microsserviços decompõem sistemas em serviços, mas diferem em granularidade, propriedade de dados e como os serviços se comunicam.
| Aspecto | SOA | Microsserviços |
|---|
| Granularidade | Granulação grossa | Granulação fina |
| Comunicação | Frequentemente via um ESB | Leve (REST/gRPC/messaging) |
| Dados | Frequentemente compartilhados | Banco de dados por serviço |
| Governança | Centralizada | Descentralizada |
| Protocolo | Geralmente SOAP/XML | Normalmente 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)
Microsserviços seguem o princípio "smart endpoints, dumb pipes": a inteligência vive nos serviços, e o transporte permanece simples. SOA frequentemente centraliza a lógica em um ESB.
Não reintroduza um gargalo estilo ESB. Um barramento central pesado transforma microsserviços de volta em SOA com passos extras.
A diferença é principalmente sobre descentralização: microsserviços empurram a propriedade de dados e lógica para cada serviço para evitar o gargalo central que atormentou muitas implantações de SOA.
Entender isso o impede de reconstruir acidentalmente o acoplamento da SOA sob um rótulo de microsserviços.