Files
Investidor-V2/docs/implementation/adr/ADR-008-outbox.md
T
nala 4f35313d06
tests / ci (push) Canceled after 0s
novas funcionalidades dos formulario
2026-10-02 11:13:37 +02:00

1.2 KiB

ADR-008 — Outbox transaccional

  • Estado: Aceite como padrão para integração assíncrona.
  • Data: 2026-10-01
  • Contexto: existem tabelas outbox_events/inbox_events, cliente SuiteCRM e emissão localizada; integração externa não está globalmente homologada.

Decisão

Gravar alteração de domínio e evento outbox na mesma transacção local, com envelope versionado, identificador estável, tipo, aggregate/version, instante, classificação e payload mínimo allowlisted. Nunca incluir segredos, tokens ou PII desnecessária. Worker publica após commit, usa backoff configurado por operação, regista tentativas/erro sanitizado e marca sucesso; assumir entrega pelo menos uma vez. Consumidor valida schema/versão, deduplica por message/event ID via inbox e confirma efeito e recibo atomicamente. Falhas permanentes vão para estado de falha observável e exigem replay idempotente. Não prometer exactly-once entre sistemas.

Alternativas e consequências

Chamada externa dentro da transacção é rejeitada por atomicidade impossível e latência. Dispatch directo após commit perde eventos em crash. Contratos e políticas de retenção/PII precisam validação por integração; existência das tabelas não significa operação activa.