Backend, Dados e Segurança Mais detalhes C · Convenção da indústria Plataforma: Web

Saga Pattern

Padrão Saga

Uma saga liga várias etapas salvas em um único trabalho de negócios. Se uma etapa posterior falhar, ela é reexecutada ou outra etapa é adicionada para corrigir o que aconteceu anteriormente.

Veja como funciona
Você poderia chamar de Saga Patternsaga distribuídafluxo de trabalho sagatransação saga

Veja como funciona

Exemplo trabalhado originalPadrão Saga
Estado & recuperaçãoPadrão Sagasaga ID + local transaction -> next step; failure -> retry | compensation -> terminal state
RESERVA DE VIAGEMfalha no hotel
  1. ✓Voo mantidoflight_tx_7
  2. ✓Cartão cobradopay_tx_8
  3. !Hotel indisponívelhotel_tx_9
↶ Compensação concluídasaga: cancelled
MANTER SEGUROCada serviço executa um passo local e registra o que aconteceu.RECUPERARRetente o trabalho pendente ou execute ações compensatórias explícitas.
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal stateJOB
Padrão SagaConfiabilidade do backend

Outro exemplo

O pedido `984` reserva o estoque, autoriza NT$248 e então solicita o envio. O envio rejeita o endereço. A saga anula a autorização e libera o estoque com o mesmo ID de saga. Em seguida, registra o pedido como compensado.

Partes principais

  1. 01ID e estado da Saga
  2. 02Serviços participantes
  3. 03Transações locais
  4. 04mensagens de resultado
  5. 05Repetir ou compensar
  6. 06Auditoria e recuperação manual

Use-o quando

Use uma saga quando um trabalho de negócio abrange serviços ou armazenamento de dados. Use-a apenas quando um passo de banco de dados de tudo ou nada não puder cobrir todo o trabalho. Defina cada passo salvo, próxima ação, tentativa, ação corretiva e estado final.

Não o use quando

Não adicione uma saga quando um único salvamento em banco de dados pode concluir todo o trabalho. Uma ação corretiva é um trabalho novo. Ela pode falhar ou resultar em um resultado diferente. Pergunte a uma pessoa quando uma ação não for segura para desfazer.

Nome usado no código

saga ID + local transaction -> next step; failure -> retry | compensation -> terminal state

Antes de lançar

Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.

Solicitação que você pode copiar

Outcome: Complete the task with Padrão Saga (Saga Pattern). User context: O pedido `984` reserva o estoque, autoriza NT$248 e então solicita o envio. O envio rejeita o endereço. A saga anula a autorização e libera o estoque com o mesmo ID de saga. Em seguida, registra o pedido como compensado. Technical concept or control: Padrão Saga (Saga Pattern). Why it fits: Use uma saga quando um trabalho de negócio abrange serviços ou armazenamento de dados. Use-a apenas quando um passo de banco de dados de tudo ou nada não puder cobrir todo o trabalho. Defina cada passo salvo, próxima ação, tentativa, ação corretiva e estado final. Do not use it when: Não adicione uma saga quando um único salvamento em banco de dados pode concluir todo o trabalho. Uma ação corretiva é um trabalho novo. Ela pode falhar ou resultar em um resultado diferente. Pergunte a uma pessoa quando uma ação não for segura para desfazer. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Nenhum padrão oficial único controla todo o termo. Seu significado pode mudar entre equipes, plataformas ou frameworks. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.

Conferir este pedido

Review how Padrão Saga (Saga Pattern) is used now. Definition: Uma saga liga várias etapas salvas em um único trabalho de negócios. Se uma etapa posterior falhar, ela é reexecutada ou outra etapa é adicionada para corrigir o que aconteceu anteriormente. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.

C
Quão oficial é este termo?

Convenção da indústria

As pessoas frequentemente usam este termo no trabalho. As fontes listadas podem apoiar a prática ou limitações. Elas não definem todas as partes do termo.

Nenhum padrão oficial único controla todo o termo. Seu significado pode mudar entre equipes, plataformas ou frameworks.

Escopo
Apenas o que a fonte cobre:nome canônico、definição、implementação、orientação de uso、Guia de como evitar
Status do documento
estável
Verificado em
2026-07-30

Fontes e escopo da evidência

Fonte de autoridade + Referência do termo · Amazon Web Services · estável Saga patterns Escopo: nome canônico、definição、implementação、orientação de uso、Guia de como evitar Papel aqui: Referência direta ao termo A fonte cobre: nome canônico, definição, implementação, orientação de uso, Guia de como evitar Origem do fundo Azure Architecture Center — Compensating Transaction pattern Papel aqui: Contexto útil, não uma definição

Copie você mesmo

O navegador não conseguiu copiar isso. Selecione a solicitação abaixo e copie você mesmo.