Una saga coordina acciones reversibles de IA doméstica al dividir un flujo de trabajo en pasos ordenados y ejecutar acciones compensatorias cuando falla un paso posterior.
Esto resulta útil cuando un agente interactúa con varios servicios independientes que no pueden compartir una única transacción. El flujo de trabajo registra el progreso, detecta el punto de fallo y deshace deliberadamente los pasos que pueden revertirse.
Una saga divide una acción doméstica en varios pasos locales
Una saga coordina un flujo de trabajo que abarca sistemas independientes tratando cada paso como una transacción local o un efecto secundario. Toda la operación solo tiene éxito después de que se completan los pasos necesarios.
El patrón Saga se define como una secuencia de transacciones locales coordinadas mediante mensajes u orquestación. Resulta útil cuando una única transacción global ACID no puede abarcar a todos los participantes. El patrón Saga descompone una transacción más grande en una secuencia de transacciones locales, lo que encaja claramente con las acciones domésticas de varios pasos descritas en descripción general del patrón Saga.
Un flujo de trabajo de IA doméstica podría detener un servicio multimedia, mover una biblioteca, actualizar un punto de montaje, renovar los metadatos y reiniciar el servicio.
Cada componente confirma sus cambios localmente, aunque el flujo de trabajo completo no sea atómico.
Cada paso reversible define una compensación
Una saga no revierte todos los servicios con un único comando de base de datos. Los pasos que pueden revertirse definen acciones compensatorias que restauran semánticamente el trabajo anterior o lo contrarrestan.
Microservices.io explica que un fallo activa transacciones compensatorias para los pasos completados anteriormente. La compensación restaura la coherencia en lugar de borrar el historial. Azure describe acciones compensatorias para los pasos reversibles de una saga, respaldando el modelo de compensación utilizado en patrón Saga de Azure.
MoveFile puede compensarse con MoveFileBack, y DisableShare puede compensarse con EnableShare. Algunas acciones externas pueden no tener un inverso perfecto y deben marcarse en consecuencia.
Un orquestador puede decidir el orden de avance y reversión
En una saga basada en orquestación, un componente del flujo de trabajo conoce la secuencia, envía comandos, registra las respuestas y decide si continuar o iniciar la compensación.
Microservices.io muestra un orquestador de saga que invoca pasos y compensaciones. Una máquina de estados central suele ser más fácil de auditar en un servidor doméstico que una red de reacciones independientes. La guía de Saga de Temporal muestra cómo un orquestador puede registrar compensaciones e invocarlas cuando falla un paso posterior, coincidiendo con la coordinación en orden inverso de patrón Saga de Temporal.
Cuando falla un paso tardío, las compensaciones normalmente se ejecutan en el orden inverso de las dependencias.
Si se cambió un punto de montaje después de mover los archivos, el flujo de trabajo debería restaurar el punto de montaje antes de volver a mover los datos.
La coreografía distribuye la coordinación entre eventos
Una saga basada en coreografía permite que cada participante reaccione a los eventos y emita el siguiente evento. Esto elimina un coordinador central, pero distribuye la lógica del flujo de trabajo entre los suscriptores.
El patrón Saga distingue explícitamente entre coreografía y orquestación. Ambos pueden coordinar compensaciones, pero la observabilidad es diferente. AWS distingue entre orquestación y coreografía basada en eventos, lo que respalda la disyuntiva de coordinación descrita en orquestación de sagas de AWS.
Para un flujo de trabajo pequeño y autoalojado, la orquestación suele ser más fácil de inspeccionar. La coreografía también puede encajar en sistemas cuyos servicios independientes ya se comunican mediante un bus de eventos.
La compensación necesita idempotencia y una identidad de acción estable
Una compensación puede reintentarse después de un tiempo de espera o un fallo, por lo que debe ser segura de ejecutar de nuevo o capaz de detectar que el estado de destino ya se ha restaurado.
El modelo de saga presupone una semántica explícita para las transacciones locales y las transacciones compensatorias. Los identificadores estables del flujo de trabajo y de los pasos ayudan a distinguir un reintento de una ejecución duplicada. La guía de Saga de IBM destaca las transacciones locales y el comportamiento compensatorio, lo que refuerza por qué los reintentos y las compensaciones necesitan identidades estables y una ejecución idempotente en guía de implementación de Saga de IBM.
Esto se relaciona con los bucles repetidos de llamadas a herramientas de agentes de ZimaSpace: un flujo de recuperación debe saber si está reanudándose de forma segura o repitiendo un efecto secundario.
Una saga no puede hacer que todas las acciones sean realmente reversibles
Algunas acciones domésticas tienen consecuencias externas irreversibles.
Un mensaje entregado, un archivo borrado de forma segura o una compra a un tercero no siempre pueden deshacerse mediante una llamada inversa a una API.
Las sagas se basan en la compensación en lugar de una reversión distribuida universal. Por ello, los pasos irreversibles deben ordenarse al final y controlarse cuidadosamente. El análisis de Red Hat sobre los patrones de transacciones distribuidas destaca que la compensación es una acción correctiva a nivel empresarial, no una reversión universal, lo que establece el límite en patrones de transacciones distribuidas de Red Hat.
La estrategia de agentes que prioriza la lectura de ZimaSpace proporciona una progresión más segura, desde la observación hasta la modificación; una saga coordina entonces los cambios que se permiten deliberadamente.
Centro de Tecnología e IA
Más para leer

Estado de ejecución frente a estado persistente en Home Assistant: ¿qué debe sobrevivir al reinicio?
Home Assistant no conserva todos los valores en tiempo real; la configuración, los registros, los estados restaurados seleccionados, el historial y los datos de...

¿Cómo autentica Home Assistant las sesiones locales y remotas?
Las sesiones locales y remotas de Home Assistant utilizan el mismo modelo de identidad del servidor; el acceso remoto cambia la ruta y el...

¿Por qué pueden volverse lentas las consultas del historial de Home Assistant a medida que crecen los datos del grabador?
El crecimiento del grabador puede aumentar el costo de las consultas del historial cuando el rango solicitado abarca más filas, aumentan los fallos de...

