Sobes.tech
Middle — Middle+

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:

  1. Na transação, as alterações nos objetos de negócio são salvas e uma entrada é adicionada na tabela Outbox.
  2. A transação é confirmada.
  3. Um processo separado lê as novas entradas da Outbox e as envia para a fila de mensagens.
  4. 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.