Arquitetura Corporativa para Todos

Artigo / Post

O Paradoxo do ACK do Rabbitmq

Aparentemente existe desenvolvedores que encaram a confirmação de leitura como um paradoxo (Uma figura de pensamento, baseada na contradição).

A origem deste cenário é suposição erronea que o Rabbit não é capaz de garantir entrega de mensagens. Esta suposição leva a raciocínios ainda mais exóticos de utilização equivocadas de padrões para tentar resolver este paradoxo.

Aparentemente existe uma falta de entendimento de conceitos fundamentais para utilização filas e formas de garantias. A falta de entendimento dos motivadores dos padrões de Inbox e OutBox completam este cenário caótico.


Ambos os padrões(Inbox/OutBox) foram criados para resolver um problema de resiliência baseado no conceito de atomicidade. Os 2 padrões não são nem bons, nem ruins, entretanto o uso deles antes do conhecimento básico, antes de entender o problema de negócio e entender se o pattern entrega valor para o negócio, é overengeenering puro.


Vamos explorar 2 tipos de garantias (existem mais) em ambientes distribuídos para resolver este paradoxo:

➡ No máximo uma vez – Quando enviamos uma mensagem e o processamento falha, a mensagem será perdida e não será tratada. Isso pode acontecer tanto por erros transitórios quanto por erros não transitórios. Este tipo de garantia o ACK automático se encaixa.

Penso que se um dado que desejo trabalhar é descartável (Garanto a entrega mas não preciso garantir sua execução) não vejo motivo algum para gastar processamento e recursos para tratar este cenário utilizando filas.

➡ Pelo menos uma vez – Temos a certeza de que a mensagem será sempre entregue, porém a execução pode ou não falhar, gerando a incerteza de quantas vezes isso será tratado. Este tipo de garantia precisa vir acompanhado com o tratamento correto da idempotência para garantir a consistência dos dados em um possível reprocessamento.

Podemos conseguir melhorar a resiliência de falha criando novas filas de retentivas ou republicando mensagens do lado do produtor (por exemplo, com um padrão de caixa de saída – OutBox) ou remanipulando do lado do consumidor (por exemplo, com um padrão de caixa de entrada – Inbox).

Este tipo de garantia o ACK manual se encaixa, dando a oportunidade de o desenvolvedor escolher a melhor estratégia para um tratamento , com garantia de entregue e do processamento.

🔔 Quando passamos a debater os conceitos fundamentais das tecnologias e padrões envolvidos, tornamos nossas escolhas mais fácil! garantindo o entendimento correto de sua utilização evitando-se paradoxos que na realidade não existem.

Links de referências :

https://gago.io/blog/oragon-rabbitmq-relacao-ack-e-resiliencia/

https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

Dívidas Técnicas: um risco corporativo que cresce silenciosamente

É necesssário  evolução do pensamento crítico sobre as dívidas técnicas para uma proposta sustentável de dívidas corporativas. Dívidas Técnicas: um risco corporativo além do código Dívidas técnicas NÃO SÃO apenas um problema de projeto de software, são um RISCO CORPORATIVO. Uma dívida técnica, devido a sua natureza, só tende a

TI x Negócio – Contexto é uma palavra-chave

Algum tempo atrás estive envolvido em uma solução para aumento de capacidade transacional de vários produtos. Foi necessário um redesenho arquitetural por diversos motivos visando um horizonte maior de crescimento de negócio (presente e futuro) alinhado com uma nova estratégia executiva. Iniciativas assim são fruto de um processo de amadurecimento

Porque a Lei de Conway (Um princípio de quase 60 anos!) continua tão atual

A área de tecnologia tem impacto significativo nos resultados de uma organização, porém sem um propósito ela não tem valor. Tecnologia é o parceiro ideal para área de negócio e tem um propósito : Habilitar novas oportunidades e melhorar a eficiência operacional das operações. Não existe decisões técnicas , decisões de

"A vastidão do conhecimento disponível contrasta com a incapacidade de transformar essa riqueza em decisões estratégicas, inovação e adaptabilidade."

Silas Serpa | MSc, PhD

Sua Reflexão

0
Adoraria saber sua opinião, comente.x