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

Transactional Outbox

Caixa de saída transacional

Uma caixa de saída transacional salva uma alteração de dados e um registro de mensagem em uma única transação de banco de dados local. Um retransmissor envia a mensagem salva após a transação ser confirmada.

Veja como funciona
Você poderia chamar de Transactional Outboxpadrão outboxpadrão de caixa de saída transacionalcaixa de saída do banco de dados

Veja como funciona

Exemplo trabalhado originalCaixa de saída transacional
Estado & recuperaçãoCaixa de saída transacionallocal transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumer
UM COMMIT DE BANCO DE DADOSCOMMIT ✓
orders✓order_2048
outbox✓evt_784
✓ Intenção de pedido e evento salvos juntostx_42
MANTER SEGUROA linha de negócios e a linha de saída fazem commit em uma única transação de banco de dados local.RECUPERARO relé tenta publicar novamente; os consumidores lidam com IDs de eventos duplicados.
local transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumerJOB
Caixa de saída transacionalConfiabilidade do backend

Outro exemplo

O checkout salva o pedido `984` e o evento da caixa de saída `OrderCreated:984` em uma única transação. Um relé publica o evento posteriormente. Se ele parar após enviar, mas antes de marcar a linha, pode enviar novamente. O consumidor remove o duplicado pelo ID do evento.

Partes principais

  1. 01alteração de dados de negócios
  2. 02linha de evento da outbox
  3. 03Uma transação local
  4. 04Relay ou fluxo de mudanças
  5. 05publicação do corretor
  6. 06consumidor seguro contra duplicatas

Use-o quando

Use-o quando uma alteração comprometida no banco de dados deve levar de forma confiável a uma mensagem ou evento. Mantenha a outbox na mesma transação e opere o relé como seu próprio processo confiável.

Não o use quando

Não chame de entrega única ou de uma transação única entre serviços. Planeje eventos repetidos, sua ordem, atraso de retransmissão, limpeza e manipulação segura de duplicatas.

Nome usado no código

local transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumer

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 Caixa de saída transacional (Transactional Outbox). User context: O checkout salva o pedido `984` e o evento da caixa de saída `OrderCreated:984` em uma única transação. Um relé publica o evento posteriormente. Se ele parar após enviar, mas antes de marcar a linha, pode enviar novamente. O consumidor remove o duplicado pelo ID do evento. Technical concept or control: Caixa de saída transacional (Transactional Outbox). Why it fits: Use-o quando uma alteração comprometida no banco de dados deve levar de forma confiável a uma mensagem ou evento. Mantenha a outbox na mesma transação e opere o relé como seu próprio processo confiável. Do not use it when: Não chame de entrega única ou de uma transação única entre serviços. Planeje eventos repetidos, sua ordem, atraso de retransmissão, limpeza e manipulação segura de duplicatas. 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 Caixa de saída transacional (Transactional Outbox) is used now. Definition: Uma caixa de saída transacional salva uma alteração de dados e um registro de mensagem em uma única transação de banco de dados local. Um retransmissor envia a mensagem salva após a transação ser confirmada. 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 Transactional outbox pattern 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

Copie você mesmo

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