Skip to Content
Primeiros passosCiclo de vida da mensagem

Ciclo de vida da mensagem

Status possíveis

StatusSignificado
NAO_PROCESSADARecebida e persistida, ainda não enfileirada
ENFILEIRADAJob criado no BullMQ, aguardando worker
PROCESSANDOWorker executando a entrega neste momento
PROCESSADAEntregue com sucesso
AGUARDANDO_REENVIOFalhou e está no intervalo de backoff antes da próxima tentativa
ERRO_ENTREGAFalha técnica após esgotar as tentativas (timeout, conexão, HTTP 5xx)
ERRO_NEGOCIOO destino respondeu, mas a resposta bateu com uma regra de erro de negócio
ERRO_COLETAFalha ao buscar o dado na fonte externa (etapa 1 de uma Coleta)
CANCELADADescartada manualmente pela tela de cancelamento

ERRO_COLETA e ERRO_ENTREGA são coisas diferentes numa Coleta: o primeiro é falha ao ler a origem; o segundo, falha ao encaminhar para o destino um dado que já foi lido com sucesso.

Erro técnico × erro de negócio

  • Erro técnico — o destino não respondeu, estourou timeout ou devolveu erro de transporte. O CMS repete conforme as tentativas e o backoff da Definição.
  • Erro de negócio — o destino respondeu normalmente (HTTP 200, inclusive), mas o conteúdo da resposta casa com um padrão cadastrado em Erros de Negócio. Repetir não adianta: alguém precisa corrigir o dado. Opcionalmente a regra bloqueia a Interface, segurando as próximas mensagens até intervenção.

Onde as tentativas acontecem

O Máximo de tentativas da Definição vale nos dois modos de entrega, mas em lugares diferentes:

ModoOnde repeteIntervalo entre tentativas
AssíncronaNo job da fila, fora da requisição de recebimento10 segundos
SíncronaDentro da própria requisição de recebimento1 segundo

O intervalo curto do modo síncrono é proposital: ali quem enviou a mensagem está esperando a resposta, e cada volta a mais é latência somada. Serve para atravessar uma falha momentânea — uma conexão recusada, o 502 de um proxy reiniciando — e não para aguardar um destino voltar do zero. Esse é o caso de uso da entrega assíncrona.

Em qualquer dos modos, o laço para antes de esgotar as tentativas quando:

  • a entrega dá certo;
  • o destino devolve um erro de negócio — repetir devolveria exatamente o mesmo erro;
  • a Aplicação de destino está offline no keep-alive — nem a primeira tentativa sai.

Cada tentativa grava seu próprio registro de processamento: é esse histórico que o detalhe da mensagem mostra.

Reprocesso

Mensagens em ERRO_ENTREGA ou ERRO_NEGOCIO podem ser reenviadas pela tela Erros de Entrega (/messages/delivery-errors), individualmente ou em lote. O reprocesso cria uma nova tentativa registrada no histórico da mensagem — nada é sobrescrito.

Retenção

O job de limpeza (módulo limpeza, configurável em Agendadores) roda toda madrugada e expurga mensagens antigas conforme os dias de retenção definidos em cada Interface — a retenção é por Interface, não global. O relatório de Armazenamento mostra o volume acumulado por Aplicação → Interface → Definição, com a retenção de cada uma ao lado.