Tuiteiro compulsivo. Blogueiro cansado fazendo um post por ano. Dev Sr e Gamer Jr, Desenvolvedor de software desde 2002, Ex-colunista das revistas Clube Delphi e .Net Magazine.
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?
Software Engineer - Backend | Cloud
I write about software engineering, career, and distributed systems.
In my spare time, I play video games and D&D.
Opinions are my own.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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?
Fui dar uma pesquisada nos padrões que ele comentou: Transactional Outbox e Sagas. Tem as informações aqui:
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.