Pular para o conteúdo principal

Polling Publisher

Descrição​

O Polling Publisher é uma forma de implementar o message relay do Transactional Outbox. Um processo consulta repetidamente a tabela de outbox no banco de dados, lê as mensagens pendentes e as publica no message broker, marcando-as como enviadas ou removendo-as em seguida.

É a abordagem mais simples de adotar, pois usa apenas consultas comuns ao banco e não depende de recursos específicos de log de transações.

Problemas que resolve​

  • Mover mensagens e eventos da tabela de outbox para o broker depois que o Transactional Outbox foi aplicado.
  • Obter um relay que funciona com qualquer banco SQL, sem ferramentas específicas.

Quando usar​

  • O banco é SQL e não há acesso fácil ao log de transações.
  • Simplicidade e portabilidade pesam mais que latência mínima.
  • O volume de mensagens é moderado.

Quando evitar​

  • Latência muito baixa ou volume alto, pois o polling gera carga e atraso.
  • O banco é NoSQL sem suporte adequado a esse tipo de consulta.
  • Ordem estrita é crítica e não se consegue garantir com múltiplos publicadores concorrentes.

Trade-offs​

GanhoCusto / Risco
Funciona com qualquer banco SQLPublicar eventos em ordem é complicado
Implementação simples e sem dependências específicasNem todos os bancos NoSQL suportam o padrão
Fácil de operar e depurarCarga extra de consultas e latência igual ao intervalo de polling
  • Consistência eventual com atraso limitado pelo intervalo de polling.
  • Múltiplas instâncias do publicador exigem coordenação (por exemplo, bloqueio de linhas) para evitar duplicatas e quebra de ordem.
  • Consumidores devem ser idempotentes.

Diagrama​

O publicador consulta o outbox periodicamente, envia as mensagens ao broker e atualiza o estado no banco.

Padrões relacionados​

Referência​