Saga patrón - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Saga patrón

El saga patrón 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 saga patrón implementa un sistema de procesamiento de pedidos mediante el uso de AWS Step Functions. Cada paso (por ejemplo, «ProcessPayment») también tiene pasos separados para determinar el éxito (por ejemplo, UpdateCustomerAccount «») o el fracaso (por ejemplo, SetOrderFailure «») del proceso.


        Saga patrón

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 saga patrón 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 saga patrón en una arquitectura de microservicios, consulte el patrón Implemente el saga patrón sin servidor mediante su uso AWS Step Functions en el AWSsitio web de orientación prescriptiva.