Pular para o conteúdo principal

Pergunta 36 de 50

O Kafka possui DLQ nativa?

SêniorTech Lead

Pergunta

"O Kafka tem um mecanismo nativo de DLQ, como o SQS tem?"

O que o entrevistador quer avaliar

Essa é uma pegadinha frequente e reveladora — testa se o candidato assume, por analogia com SQS, que Kafka tem DLQ "de fábrica".

Resposta rápida

Não. Diferente do SQS, que tem DLQ integrada nativamente à fila, o Kafka não tem nenhum recurso nativo de dead-lettering. Uma "DLQ" no Kafka é, na prática, apenas um tópico comum — a lógica de publicar mensagens problemáticas nele é responsabilidade da aplicação ou de um framework.

Resposta nível Sênior

O SQS tem um atributo de configuração nativo (RedrivePolicy) que a AWS gerencia internamente. O Kafka não tem equivalente — o "tópico de DLQ" é uma convenção arquitetural, não um recurso da plataforma: você cria um tópico normal (por exemplo, <topico>.DLT) e implementa a lógica de publicar nele quando as tentativas de retry se esgotam. O Spring Kafka facilita isso com o DeadLetterPublishingRecoverer, que integra ao DefaultErrorHandler e publica automaticamente no tópico de DLQ configurado — mas isso é uma abstração de framework sobre o Kafka, não uma capacidade nativa do broker em si.

Explicação aprofundada

Veja "DLQ no Kafka: não é nativa" no Capítulo 9 e a implementação prática no Capítulo 14.

Exemplo financeiro

Um time migrando de SQS para Kafka precisa implementar explicitamente a lógica de DLQ (via DeadLetterPublishingRecoverer ou equivalente) — não existe um parâmetro de configuração do tópico Kafka que ative isso automaticamente, como existe no SQS.

"Claro, todo tópico Kafka pode ter uma DLQ configurada nele mesmo"

Não existe configuração de tópico que ative DLQ automaticamente. A DLQ é sempre um tópico separado, criado e alimentado por lógica explícita da aplicação ou do framework — nunca um atributo do tópico original.

Pode vir a seguir

Prováveis follow-ups: "como você implementaria uma DLQ no Kafka?" e "o que é uma Poison Pill?".

Capítulos relacionados