Patrón para gestionar transacciones distribuidas en microservicios mediante una secuencia de transacciones locales con acciones de compensación para manejar fallos.
El patrón Saga gestiona transacciones que abarcan múltiples microservicios. En lugar de una transacción ACID distribuida (costosa y frágil), una saga es una secuencia de transacciones locales donde cada paso tiene una acción de compensación en caso de fallo.
Cada servicio escucha eventos y decide qué hacer:
Pedido creado → Inventario reservado → Pago procesado → Pedido confirmado
↓ (fallo)
Inventario liberado ← Pago rechazado
Un orquestador central coordina los pasos:
Orquestador → Reservar inventario → Procesar pago → Confirmar pedido
← Compensar si falla algún paso
| Aspecto | Coreografía | Orquestación |
|---|---|---|
| Acoplamiento | Bajo | Medio |
| Visibilidad | Difícil de rastrear | Flujo claro |
| Complejidad | Crece con servicios | Centralizada |
En sistemas distribuidos, las transacciones ACID no cruzan fronteras de servicio. El patrón saga coordina transacciones distribuidas mediante una secuencia de transacciones locales con compensaciones, manteniendo la consistencia eventual sin bloqueos distribuidos.
Estilo arquitectónico que estructura una aplicación como colección de servicios pequeños, independientes y desplegables, cada uno con su propia lógica de negocio y datos.
Patrón arquitectónico donde los componentes se comunican mediante eventos asíncronos, permitiendo sistemas desacoplados, escalables y reactivos.
Patrón que separa las operaciones de lectura y escritura en modelos distintos, optimizando cada uno independientemente para rendimiento y escalabilidad.
Patrón donde el estado de la aplicación se deriva de una secuencia inmutable de eventos, proporcionando auditoría completa y la capacidad de reconstruir el estado en cualquier punto del tiempo.
Técnica de observabilidad que rastrea requests a través de múltiples servicios en sistemas distribuidos, permitiendo identificar cuellos de botella y diagnosticar fallos.