Pular para o conteúdo principal

Pergunta 35 de 50

O que é DLQ ou Dead Letter Topic?

PlenoSênior

Pergunta

"O que é uma DLQ (Dead Letter Queue/Topic)?"

O que o entrevistador quer avaliar

Entendimento do papel da DLQ como mecanismo de isolamento de falha, não apenas "onde as mensagens com erro vão parar".

Resposta rápida

DLQ (Dead Letter Topic, no vocabulário do Kafka) é um tópico separado para onde mensagens que falharam repetidamente são publicadas, depois de esgotadas as tentativas de retry, permitindo investigação manual sem bloquear o processamento das mensagens seguintes.

Resposta nível Sênior

A função da DLQ é isolar o efeito poison pill: sem ela, uma mensagem que falha indefinidamente travaria o processamento de tudo que vem depois dela na mesma partition. Ao mover a mensagem problemática para um tópico separado depois de esgotar as tentativas de retry, o consumer principal segue processando normalmente as mensagens seguintes. A DLQ não corrige o problema: ela só o isola para investigação posterior, seja reprocessamento manual depois de corrigir a causa raiz, seja simplesmente descarte, se a mensagem for de fato inválida.

Explicação aprofundada

Veja "DLQ no Kafka: não é nativa" no Capítulo 9.

Exemplo financeiro

Um evento BoletoGerado com CPF malformado falha nas 3 tentativas de retry configuradas e é publicado em boletos.gerados.DLT; enquanto isso, os boletos seguintes da mesma partition continuam sendo processados sem atraso.

"A DLQ corrige o problema automaticamente"

A DLQ apenas isola a mensagem problemática; ela não tenta corrigi-la nem reprocessá-la sozinha. Alguém (ou algum processo) precisa investigar o motivo da falha e decidir o que fazer com a mensagem isolada.

Pode vir a seguir

Prováveis follow-ups: "o Kafka possui DLQ nativa?" e "o que é uma Poison Pill?".

Capítulos relacionados