Pular para o conteúdo principal

Invalid Message Channel

Descrição​

O Invalid Message Channel é um canal separado para onde o receptor desvia as mensagens que recebeu mas não consegue entender ou processar, por exemplo por formato incorreto, campos ausentes ou conteúdo que viola o contrato esperado. Em vez de falhar, descartar ou travar o fluxo normal, o receptor move a mensagem para esse canal.

Os administradores definem um ou mais canais desse tipo ao projetar o sistema. Como o tráfego saudável nunca passa por ali, as mensagens problemáticas não interferem na operação normal, e um processo de tratamento de erros pode ser ligado ao canal para inspecioná-las e diagnosticar a causa.

A distinção importante é que a mensagem chegou ao destino, mas é inválida para ele. Isso difere do Dead Letter Channel, que trata mensagens que o sistema de mensageria não conseguiu entregar.

Problemas que resolve​

  • O receptor recebe uma mensagem sem sentido e não deve falhar nem processá-la de forma incorreta.
  • Mensagens ruins repetidas bloqueiam a fila ou geram loops de reprocessamento.
  • Sem um destino para elas, as mensagens inválidas são perdidas e ninguém consegue diagnosticar o problema.

Quando usar​

  • O receptor valida o conteúdo das mensagens e pode rejeitá-las de forma explícita.
  • É importante preservar mensagens inválidas para análise, correção e eventual reprocessamento.
  • Vários produtores enviam para o mesmo canal e nem todos respeitam o contrato.

Quando evitar​

  • Quando a falha é transitória (por exemplo, dependência fora do ar): a mensagem é válida e deve ser tentada de novo, não desviada.
  • Quando o canal é totalmente controlado e validado na origem, e rejeições são impossíveis na prática.

Trade-offs​

GanhoCusto / Risco
O fluxo normal não é interrompido por mensagens ruinsAlguém precisa monitorar e tratar o canal de inválidas
Mensagens problemáticas ficam disponíveis para diagnósticoDados potencialmente sensíveis ficam retidos e exigem proteção
Separação clara entre erro de conteúdo e erro de entregaO receptor precisa implementar validação e decisão de desvio
  • Contexto: inclua na mensagem desviada o motivo da rejeição e o canal de origem para facilitar o diagnóstico.
  • Reprocessamento: após corrigir a causa, defina como reinserir as mensagens no fluxo.
  • Alertas: o crescimento do canal é um sinal de problema de contrato entre produtor e consumidor.

Diagrama​

O receptor valida cada mensagem; as válidas seguem o fluxo normal e as inválidas vão ao canal dedicado, onde um processo de erros as analisa.

Padrões relacionados​

  • Dead Letter Channel — trata mensagens que não puderam ser entregues, em vez de mensagens inválidas.
  • Datatype Channel — canais por tipo reduzem a chance de formato errado.
  • Message Channel — o conceito geral de canal.
  • Message Expiration — mensagens vencidas também podem ser desviadas.
  • Retry — falhas transitórias pedem nova tentativa, não desvio como inválida.
  • Service Activator — endpoint que costuma validar e despachar a mensagem.

Referência​