Tanto SOA (Service-Oriented Architecture) como microservices descomponen sistemas en servicios, pero difieren en granularidad, propiedad de datos y cómo los servicios se comunican.
Tanto SOA (Service-Oriented Architecture) como microservices descomponen sistemas en servicios, pero difieren en granularidad, propiedad de datos y cómo los servicios se comunican.
| Aspecto | SOA | Microservices |
|---|
| Granularidad | Grano grueso | Grano fino |
| Comunicación | A menudo a través de un ESB | Ligero (REST/gRPC/messaging) |
| Datos | Frecuentemente compartidos | Base de datos por servicio |
| Gobernanza | Centralizada | Descentralizada |
| Protocolo | A menudo SOAP/XML | Generalmente 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)
Los microservices siguen el principio "smart endpoints, dumb pipes": la inteligencia vive en los servicios y el transporte se mantiene simple. SOA a menudo centraliza la lógica en un ESB.
No reintroduzca un cuello de botella de estilo ESB. Un bus central pesado convierte los microservicios nuevamente en SOA con pasos adicionales.
La diferencia es principalmente sobre descentralización: los microservices impulsan la propiedad de datos y la lógica a cada servicio para evitar el cuello de botella central que afligió muchas implementaciones de SOA.
Comprender esto te evita reconstruir accidentalmente el acoplamiento de SOA bajo una etiqueta de microservicios.