Explique o princípio de funcionamento e o propósito do padrão Outbox na arquitetura do sistema
sobes.tech IA
Resposta da IA
O padrão Outbox é utilizado para garantir a entrega fiável de mensagens ou eventos entre microserviços ou componentes do sistema, especialmente em arquiteturas distribuídas.
A ideia é que, ao realizar uma operação de negócio na base de dados, uma tabela especial chamada "outbox" é salva juntamente com as alterações, contendo mensagens que precisam ser enviadas a sistemas externos. Depois, um processo ou serviço separado lê essas mensagens da tabela e as envia para uma fila de mensagens ou para outro consumidor.
Isso permite garantir que a mensagem seja enviada exatamente uma vez e não se perca, mesmo que o envio de mensagens e a transação principal ocorram em sistemas diferentes.
Exemplo:
- Na transação, as alterações nos objetos de negócio são salvas e uma entrada é adicionada na tabela Outbox.
- A transação é confirmada.
- Um processo separado lê as novas entradas da Outbox e as envia para a fila de mensagens.
- Após o envio bem-sucedido, a entrada da Outbox é removida ou marcada como enviada.
Dessa forma, é alcançada a consistência entre o estado do banco de dados e os eventos externos sem transações distribuídas.