Dead Letter Queue (DLQ): o que é e como usar para tratar falhas em integrações?

dead letter queue

Uma Dead Letter Queue, ou DLQ, recebe mensagens que não puderam ser processadas ou entregues conforme as regras de uma integração assíncrona. Depois de atingir o limite de tentativas, expirar ou apresentar um erro não recuperável, a mensagem pode ser isolada para diagnóstico, correção e reprocessamento. A DLQ evita que uma mensagem problemática permaneça indefinidamente no fluxo principal, mas exige monitoramento e procedimentos operacionais próprios.

O fluxo prático começa com uma política de tentativa automática para falhas transitórias, como timeout, indisponibilidade temporária de API ou recusa momentânea do gateway. Já erros de payload, contrato quebrado ou dado inconsistente devem seguir para inspeção mais cedo. Em arquiteturas com integração via API e webhooks, esse desenho reduz acúmulo silencioso de falhas e melhora rastreabilidade operacional.

Tipo de falhaAção inicial recomendadaCondição antes do reprocessamento
Timeout ou indisponibilidade temporáriaRetry com backoffServiço externo normalizado
Limite de requisiçõesRetry respeitando intervalo e limiteCapacidade ou quota disponível
Erro interno transitórioRetry controladoCausa temporária encerrada
Schema incompatívelEncaminhar para DLQContrato ou transformação corrigidos
Campo obrigatório ausenteEncaminhar para DLQOrigem ou enriquecimento corrigidos
Regra de negócio recusadaAvaliar se deve haver DLQ ou rejeição definitivaDecisão funcional registrada
Credencial inválidaSuspender o fluxo e gerar alertaCredencial renovada ou corrigida
Mensagem duplicadaTratar por idempotênciaConfirmar que não houve processamento anterior
Evento expirado ou sem utilidadeDescartar conforme políticaRegistrar motivo e auditoria

Resumo

  • O que é Dead Letter Queue e para que serve.
  • Diferença entre retry, DLQ e descarte.
  • Quais erros devem ou não ser reenviados.
  • Como configurar retenção e limite de tentativas.
  • Como corrigir e reprocessar mensagens.
  • Quais métricas, alertas e controles implementar.

Fatos rápidos

  1. Implementações diferentes: no Amazon SQS, a DLQ é outra fila que precisa ser criada e associada à fila de origem por uma política de redrive. No Azure Service Bus, cada fila ou assinatura já possui uma subfila de dead letter.
  2. Sem limpeza universal: no Azure Service Bus, as mensagens permanecem na DLQ até serem recuperadas e concluídas explicitamente. Já em outros serviços, o descarte pode depender da política de retenção configurada.
  3. RabbitMQ: a plataforma utiliza Dead Letter Exchange. Mensagens podem ser republicadas nesse exchange quando são rejeitadas sem requeue, expiram, ultrapassam o limite da fila ou excedem o limite de entregas de uma quorum queue.

O que é Dead Letter Queue e para que serve?

Em uma integração de sistemas, a Dead Letter Queue isola mensagens que não puderam ser processadas dentro das regras configuradas. A classificação entre falha transitória, erro permanente e descarte deve ser realizada pela aplicação ou pela política de mensageria. Depois de identificar e corrigir a causa, a equipe pode reprocessar a mensagem de forma controlada.

Como configurar uma dead letter queue

Uma política objetiva costuma combinar três elementos: número máximo de tentativas, intervalo progressivo entre tentativas e classificação do erro. O backoff evita tempestade de retries; o limite de tentativas impede laços improdutivos; e a classificação define se a mensagem deve voltar ao fluxo, ir para correção manual ou ser descartada com registro. No padrão Dead Letter Channel, a ideia é retirar do caminho principal aquilo que não pode ou não deve ser entregue naquele momento.

Critérios de retry e segregação

  • Retry com backoff para timeout, indisponibilidade e erro 5xx.
  • Envio direto à DLQ para schema inválido, chave ausente ou regra de negócio inconsistente.
  • Reprocessamento assistido quando há dependência externa normalizada após a falha.
CenárioAção recomendadaKPI associado
ERP indisponívelRetry com backoffTempo de reprocessamento
Payload inválido de sensorDLQ com inspeçãoVolume na DLQ
Gateway rejeita transaçãoClassificar erro e decidir retryTaxa de falha

Em ambientes distribuídos, monitorar a saúde da fila pede sinais simples e recorrentes. Segundo o Google SRE Book, latency, traffic, errors e saturation formam um conjunto eficiente para acompanhar filas e integrações. Já métricas operacionais como MTTD, MTTR e MTTRepair, tratadas no NIST SP 800-55, ajudam a medir detecção, recuperação e reparo. Em protocolos como MQTT 5.0, a própria especificação da OASIS admite que pacotes descartados possam seguir para uma dead letter queue ou ação diagnóstica.

Confira também estes conteúdos relacionados:

Como corrigir e reprocessar mensagens da DLQ

Quando bem implementada, a dead letter queue deixa de ser apenas uma fila de erro e passa a funcionar como mecanismo de continuidade, diagnóstico e melhoria contínua. Ela preserva o fluxo principal, expõe falhas que exigem correção e cria base para decisões de engenharia mais previsíveis.

Em operações que dependem de integrações entre sistemas, vale tratar esse desenho como parte da governança e manter um canal claro ao entrar em contato com a SysMiddle.

O que é Dead Letter Queue?

Dead Letter Queue é uma fila ou destino reservado para mensagens que não puderam ser entregues ou processadas conforme as regras definidas.

Para que serve uma DLQ?

Ela isola mensagens problemáticas, evita repetição indefinida no fluxo principal e cria um ponto para diagnóstico, correção e reprocessamento.

Qual é a diferença entre retry e DLQ?

Retry repete uma operação que pode funcionar depois. A DLQ recebe mensagens que ultrapassaram o limite de tentativas ou precisam de análise antes de voltar ao fluxo.

Toda falha deve ir para a DLQ?

Não. Algumas falhas devem ser repetidas, outras rejeitadas definitivamente e outras descartadas quando o evento perde a utilidade.

O que é uma poison message?

É uma mensagem que falha repetidamente e não será processada com sucesso sem correção em seus dados, contrato, origem ou regra de negócio.

Quantas tentativas devem ser feitas antes da DLQ?

Não existe um número universal. O limite depende da criticidade, do tipo de erro, do tempo de normalização esperado e do custo de repetir a operação.

O que é retry com backoff?

É uma política que aumenta o intervalo entre as tentativas para não sobrecarregar uma dependência temporariamente indisponível.

O que é redrive?

É a operação de mover mensagens da DLQ para uma fila de origem ou outro destino a fim de realizar novo processamento.

Posso reprocessar automaticamente todas as mensagens?

Não é recomendado. Primeiro é necessário confirmar que a causa foi corrigida e que o reprocessamento não produzirá duplicidades ou efeitos indevidos.

Como evitar mensagens duplicadas?

Utilize identificadores únicos, chaves idempotentes e registros das operações já concluídas antes de executar novamente a mesma ação.

Por quanto tempo manter uma mensagem na DLQ?

O prazo deve permitir detecção, análise e correção. No Amazon SQS, a retenção da DLQ deve ser maior do que a da fila original.

A DLQ é apagada automaticamente?

Depende da plataforma. No Azure Service Bus não há limpeza automática; as mensagens permanecem até serem recuperadas e concluídas.

Qual é a diferença entre DLQ e Dead Letter Exchange?

A DLQ é uma fila de destino. No RabbitMQ, o Dead Letter Exchange recebe e roteia mensagens dead-lettered para uma ou mais filas.

Dead Letter Queue garante que nenhuma mensagem será perdida?

Não. A preservação depende da configuração do broker, retenção, permissões, confirmação, disponibilidade e tratamento operacional.

Quais métricas monitorar?

Volume na DLQ, taxa de entrada, idade da mensagem mais antiga, categorias de erro, tempo de resolução, sucesso do redrive e reincidência.

A DLQ deve gerar alerta?

Sim. A entrada ou o crescimento de mensagens deve ser comunicado antes que a fila acumule volume ou atinja o prazo de retenção.

Uma DLQ pode armazenar dados pessoais?

Pode, conforme a finalidade e a arquitetura, mas o payload deve conter somente o necessário e utilizar proteção, retenção e controle de acesso adequados.

Compartilhe este conteúdo

Conteúdos relacionados

API-led connectivity

Como escalar integrações reutilizáveis com API-led connectivity em vez de construir conexão por conexão

Entenda como estruturar API led connectivity com APIs de sistema, processo e experiência, governança, catálogo, reutilização e observabilidade. O artigo mostra aplicações em ERP, estoque, logística e assinatura eletrônica, além

Publicação
monitoramento de APIs

Saiba identificar falhas com monitoramento de APIs antes que elas afetem clientes e faturamento

Este artigo explica como estruturar o monitoramento de APIs para detectar falhas antes do impacto no negócio, cobrindo dependências, métricas, logs, traces, alertas, causa-raiz e revisão contínua, com exemplos de

Publicação
Integração SaaS

Integração SaaS: quando construir integrações internamente deixa de acompanhar o crescimento

Integrações SaaS feitas internamente funcionam enquanto o volume é controlável. Quando aplicações, clientes e dependências crescem, manutenção, atualizações e dívida técnica consomem o time. Escalar exige priorização, padrões, observabilidade, documentação,

Publicação
software integrado de gerenciamento

O que é um software integrado de gerenciamento e quais são os tipos?

Saiba como um software integrado centraliza dados e processos, compara ERP, CRM, SCM, BI, HCM, CMMS e IWMS, apresenta etapas de implantação e mostra aplicações industriais, indicadores operacionais, desafios de

Publicação
escalabilidade horizontal

Como usar a escalabilidade horizontal para preparar aplicações e crescer sem perder desempenho

Este artigo explica como preparar aplicações para escalar por meio de novas instâncias, abordando ausência de estado, balanceamento, métricas, automação, observabilidade, bancos, filas e testes necessários para sustentar o crescimento

Publicação
single source of truth

Single Source of Truth: por que toda empresa precisa de uma única fonte confiável de dados

Este artigo explica como construir uma fonte única e confiável de dados, integrar sistemas corporativos, padronizar cadastros, definir governança, automatizar sincronizações e acompanhar indicadores de qualidade para reduzir conflitos, retrabalho

Publicação

Fale conosco

Com a SysMiddle as integrações se tornam um diferencial competitivo para seu negócio

Clientes e parceiros que confiam suas integrações a nós

Fale com um especialista

Preencha os campos abaixo e nossa equipe entrará em contato

Clientes e parceiros que confiam suas integrações a nós