DEV Community

Discussion on: O problema da "escrita-dupla"

Collapse
 
vitorrubio profile image
Vitor Luiz Rubio

Hugo, ótimo artigo. Fiquei com curiosidade agora: o que seria uma solução menos ingênua, mais robusta? Seria colocar todos os que falharam ao entrar no approvalservice em uma fila pra processar mais tarde? Talvez com flag de pendente de ir pro approvalservice? Ou uma política de retry? Ou ambos?

Collapse
 
andrenbrandao profile image
André Brandão

Fui dar uma pesquisada nos padrões que ele comentou: Transactional Outbox e Sagas. Tem as informações aqui:

Collapse
 
hugaomarques profile image
Hugo Marques

Boa André!

O transactional outbox tem um custo bem maior em termos técnicos mas ele acaba sendo uma solução mais robusta quando você tem esse encadeamento de chamadas que precisam ser feitas de 1x.

SAGAs funciona pero no much. SAGAs são ótimas pra fazer compensation quando uma chamada de negócio falha. Por exemplo, tentou fazer a compra no cartão, não deu certo, faz a compensation pra chamar o inventório e cancelar a compra. Porém, SAGAs não resolvem problemas técnicos. Afinal, mesmo na Compensation call ainda podem haver falhas.