3. Administrando transacciones con el patrón SAGA


En este punto te explicaré como aplicar las transacciones con consistencia eventual que utiliza el patrón SAGA.

 

¿Qué es el patrón SAGA?

El patrón Saga es una técnica que se utiliza para garantizar la consistencia de transacciones en aplicaciones distribuidas, como las que construyes en MuleSoft. Esto es especialmente útil cuando no puedes usar transacciones XA.

El patrón Saga es asíncrono, lo que significa que las transacciones no se bloquean esperando una a la otra; en cambio, se ejecutan secuencialmente y si alguna falla, se ejecutan transacciones compensatorias para revertir los cambios realizados por las transacciones anteriores.

 

Patrones disponibles

Ahora, sobre los dos enfoques para implementar el patrón Saga:

Orquestación: Utilizas un sistema centralizado (el orquestador) que se encarga de coordinar todas las transacciones y compensaciones. Es útil cuando las transacciones están dentro de un mismo dominio de control y quieres centralizar la lógica.

Coreografía: Cada servicio conoce su parte del proceso y qué hacer en caso de éxito o error. Se comunica con los otros servicios de manera descentralizada. Es útil cuando los servicios están en diferentes dominios de control y se necesita coordinación sin un punto central.

Ahora, imagina estos patrones como dos maneras de organizar un equipo. En la orquestación, tienes un líder que da todas las instrucciones; en la coreografía, cada miembro del equipo sabe qué hacer y reacciona según las acciones de los demás.

En resumen, el patrón Saga proporciona una manera de mantener la integridad de los datos a través de múltiples servicios, permitiendo que cada servicio maneje su propia lógica de transacción y compensación, lo cual es crucial en sistemas distribuidos complejos.

 

Choreography vs Orchestration

Evento/Choreography Comando/Orchestration
Características Escucha el evento exitoso del paso anterior y los eventos de fallo de los pasos subsiguientes Escucha los mensajes de éxito y fracaso provenientes del orquestador de Saga
Pros Usar cuando se requiere coordinación a través de dominios de control/visibilidad Usar para gestionar procesos de negocio que están dentro de una organización sobre la cual tienes control. Centraliza la orquestación de TX. La complejidad crece linealmente cuando se añaden pasos
Contras Agregar y eliminar pasos en una TX es más difícil Punto único de fallo

 

Conclusión

Como Mulesoft Architect, comprender y aplicar el patrón SAGA te capacitará para diseñar sistemas que mantengan la integridad y la coherencia de los datos a través de múltiples servicios. Esta habilidad es crucial para asegurar transacciones fiables en entornos distribuidos complejos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *