Uma saga coordena ações domésticas de IA reversíveis, dividindo um fluxo de trabalho em passos ordenados e executando ações de compensação quando um passo posterior falha.
Isto é útil quando um agente interage com vários serviços independentes que não podem partilhar uma única transação. O fluxo de trabalho regista o progresso, deteta o ponto de falha e desfaz deliberadamente os passos que podem ser revertidos.
Uma Saga Divide Uma Ação Doméstica em Vários Passos Locais
Uma saga coordena um fluxo de trabalho que abrange sistemas independentes, tratando cada passo como uma transação local ou um efeito secundário. Toda a operação só é concluída depois de os passos necessários terminarem.
O padrão Saga é definido como uma sequência de transações locais coordenadas através de mensagens ou de orquestração. É útil quando uma única transação ACID global não pode abranger todos os participantes. O padrão Saga decompõe uma transação maior numa sequência de transações locais, o que se aplica diretamente a ações domésticas com vários passos, conforme descrito na visão geral do padrão Saga.
Um fluxo de trabalho de IA doméstica pode parar um serviço multimédia, mover uma biblioteca, atualizar uma montagem, atualizar os metadados e reiniciar o serviço.
Cada componente confirma localmente, embora o fluxo de trabalho completo não seja atómico.
Cada Passo Reversível Define uma Compensação
Uma saga não reverte todos os serviços com um único comando de base de dados. Os passos que podem ser revertidos definem ações de compensação que restauram semanticamente ou compensam o trabalho realizado anteriormente.
O Microservices.io explica que uma falha desencadeia transações de compensação para os passos concluídos anteriormente. A compensação restaura a consistência, em vez de apagar o histórico. A Azure descreve ações de compensação para passos reversíveis de uma saga, sustentando o modelo de compensação utilizado no padrão Saga da Azure.
MoveFile pode ser compensado com MoveFileBack, e DisableShare pode ser compensado com EnableShare. Algumas ações externas podem não ter um inverso perfeito e devem ser assinaladas em conformidade.
Um Orquestrador Pode Decidir a Ordem de Avanço e de Reversão
Numa saga baseada em orquestração, um componente do fluxo de trabalho conhece a sequência, envia comandos, regista respostas e decide se deve continuar ou iniciar a compensação.
O Microservices.io mostra um orquestrador de saga a invocar passos e compensações. Uma máquina de estados central é frequentemente mais fácil de auditar num servidor doméstico do que uma rede de reações independentes. As orientações da Temporal sobre sagas mostram como um orquestrador pode registar compensações e invocá-las quando um passo posterior falha, correspondendo à coordenação pela ordem inversa descrita no padrão Saga da Temporal.
Quando um passo tardio falha, as compensações são normalmente executadas pela ordem inversa das dependências.
Se uma montagem tiver sido alterada depois de os ficheiros serem movidos, o fluxo de trabalho deve restaurar a montagem antes de voltar a mover os dados.
A Coreografia Distribui a Coordenação por Eventos
Uma saga baseada em coreografia permite que cada participante reaja a eventos e emita o evento seguinte. Isto elimina um coordenador central, mas distribui a lógica do fluxo de trabalho pelos subscritores.
O padrão Saga distingue explicitamente entre coreografia e orquestração. Ambos podem coordenar compensações, mas a observabilidade é diferente. A AWS distingue a orquestração da coreografia orientada por eventos, sustentando a comparação entre as duas abordagens descrita na orquestração de sagas da AWS.
Para um pequeno fluxo de trabalho autoalojado, a orquestração é frequentemente mais fácil de inspecionar. A coreografia continua a ser adequada para sistemas em que os serviços independentes já comunicam através de um barramento de eventos.
A Compensação Precisa de Idempotência e de uma Identidade de Ação Estável
Uma compensação pode ser repetida após um tempo limite ou uma falha, pelo que deve ser segura quando executada novamente ou capaz de detetar que o estado pretendido já foi restaurado.
O modelo de saga pressupõe semânticas explícitas para transações locais e transações de compensação. IDs estáveis do fluxo de trabalho e dos passos ajudam a distinguir uma repetição de uma execução duplicada. As orientações da IBM sobre sagas destacam as transações locais e o comportamento de compensação, reforçando a razão pela qual as repetições e compensações precisam de identidades estáveis e de uma execução idempotente nas orientações de implementação de sagas da IBM.
Isto está relacionado com os ciclos repetidos de chamadas de ferramentas de agentes da ZimaSpace: um fluxo de recuperação tem de saber se está a retomar a execução em segurança ou a repetir um efeito secundário.
Uma Saga Não Pode Tornar Todas as Ações Verdadeiramente Reversíveis
Algumas ações domésticas têm consequências externas irreversíveis.
Uma mensagem entregue, um ficheiro eliminado de forma segura ou uma compra efetuada a terceiros nem sempre podem ser anulados através de uma chamada de API inversa.
As sagas dependem de compensação, em vez de uma reversão distribuída universal. Por isso, os passos irreversíveis devem ser ordenados para o fim e cuidadosamente controlados. A análise da Red Hat sobre padrões de transações distribuídas salienta que a compensação é uma ação corretiva ao nível do negócio, e não uma reversão universal, definindo assim o limite nas informações da Red Hat sobre padrões de transações distribuídas.
A estratégia de agentes com prioridade à leitura da ZimaSpace proporciona uma progressão mais segura, da observação à modificação; uma saga coordena então as alterações que são deliberadamente autorizadas.
Centro de Tecnologia e IA
Mais para Ler

As câmaras domésticas conseguem sincronizar eventos sem serviços de hora na nuvem?
Uma explicação baseada primeiro no mecanismo do tempo da câmara sem cloud, as suas contrapartidas na partilha de recursos, três perguntas frequentes sobre a...

Um serviço de IA local consegue detetar camadas de modelos corrompidas antes da inferência?
Uma explicação baseada primeiro no mecanismo da deteção de corrupção na camada do modelo, dos seus compromissos em termos de recursos partilhados, de três...

É possível restaurar um sistema RAG sem regenerar todos os embeddings?
Uma explicação, centrada no mecanismo, do restauro de RAG sem re-embedding, das suas contrapartidas em recursos partilhados, de três perguntas frequentes sobre a expansão...

