Patrón Saga - Recomendaciones de AWS

Patrón Saga

El patrón saga es un patrón de gestión de fallos que ayuda a establecer la coherencia en las aplicaciones distribuidas y coordina las transacciones entre varios microservicios para mantener la coherencia de datos. Un microservicio publica un evento para cada transacción y la siguiente transacción se inicia en función del resultado del evento. Puede tomar dos rutas diferentes, en función del éxito o fracaso de las transacciones.

La siguiente ilustración muestra cómo el patrón saga implementa un sistema de procesamiento de pedidos mediante el uso de AWS Step Functions. Cada paso (por ejemplo, “ProcessPayment”) también tiene pasos independientes para gestionar el éxito (por ejemplo, “UpdateCustomerAccount”) o el fracaso (por ejemplo, “setOrderFailure”) del proceso.

Patrón Saga

Debería considerar la posibilidad de utilizar este patrón si:

  • La aplicación debe mantener la coherencia de datos en varios microservicios sin un acoplamiento ajustado.

  • Hay transacciones de larga duración y no es conveniente que se bloqueen otros microservicios si uno de ellos se ejecuta durante mucho tiempo.

  • Debe poder revertirlo si una operación falla en la secuencia.

importante

El patrón saga es difícil de depurar y su complejidad aumenta con el número de microservicios. Este patrón requiere un modelo de programación complejo que desarrolle y diseñe transacciones compensatorias para revertir y deshacer los cambios.

Para obtener más información sobre la implementación del patrón saga en una arquitectura de microservicios, consulte el patrón Implemente el patrón saga sin servidor mediante el uso de AWS Step Functions en el sitio web de Recomendaciones de AWS.