Recursos · 54

Webhooks: lidar com repetições, atrasos e recuperação

Transformar uma notificação recebida em um efeito comercial único e rastreável, recuperável após uma falha.

Atualizado · 3 min

O que este guia ajuda a alcançar

  • Autenticar notificações
  • Separar o recibo do processamento
  • Impedir efeitos duplicados
  • Recuperar eventos bloqueados

Verificação rápida

  • Quais bytes são assinados?
  • Quando o recibo é durável?
  • Dois workers podem agir em conjunto?
  • O provedor garante a ordem?
  • Como um evento perdido é encontrado?

Método passo a passo

  1. 1

    Ler o contrato do provedor

    Tipos de registro, versão, contexto da conta, assinaturas, tempo e regras de repetição. O Stripe afirma que a ordem de entrega não é garantida e que duplicatas podem ocorrer; não aplique um atraso específico do Stripe a cada API.

    Entregável: contrato do provedor com data.

  2. 2

    Validar antes dos efeitos

    Verificar assinaturas com a biblioteca e o corpo bruto exigidos pelo provedor. Limitar tamanhos e tipos aceitos. Testar assinaturas inválidas e contexto de conta inesperado em um ambiente autorizado sem registrar segredos.

    Entregável: negações sem efeitos.

  3. 3

    Persistir antes de confirmar

    Separar o recebimento durável do processamento lento. Se a fila não puder aceitar o evento, não o reporte como retido. Sucesso indica recebimento sob seu contrato, não necessariamente a conclusão da ação comercial.

    Entregável: estados recebido, em processamento, concluído e bloqueado.

  4. 4

    Impor idempotência

    Definir chaves de evento e identidade de efeito comercial. Testar repetições simultâneas em vez de apenas entrega sequencial. Uma verificação preliminar sem restrições atômicas ou bloqueio pode permitir que dois workers criem o mesmo efeito.

    Entregável: evidência de unicidade do efeito.

  5. 5

    Lidar com atrasos e desordem

    Não assuma que uma notificação antiga descreve o estado atual. Consulte a fonte quando o contrato permitir e aplique transições de negócios validadas. Mantenha os eventos que ainda não podem ser interpretados.

    Entregável: transições e testes de ordem inversa.

  6. 6

    Conciliar e reproduzir

    Prepare uma fila de erros com proprietário, causa, tentativas e fechamento. Mantenha a proteção contra duplicatas durante a reprodução. Compare periodicamente o provedor e o aplicativo: uma recuperação bem-sucedida não prova que nenhum evento foi perdido.

    Entregável: procedimento de recuperação e relatório de discrepâncias.

Planilha reutilizável

Preencha com suas observações autorizadas. Estes campos são um modelo de trabalho, não resultados observados.

CampoInformações a serem registradas
EventoProvedor, conta, identificador e versão
ReciboAssinatura validada e carimbo de data/hora permanente
EfeitoChave de negócio, estado e evidência de unicidade
RecuperaçãoCausa, tentativa, proprietário e encerramento

Exemplo prático fictício

Situação ilustrativa

Exemplo fictício: dois trabalhadores recebem a mesma notificação de confirmação durante a recuperação.

Decisão e evidências esperadas

Uma restrição de efeito comercial única e um estado transacional permitem um cumprimento único, enquanto ambas as entregas permanecem rastreáveis.

Distinguir os mecanismos

MecanismoFinalidadeVerificação ou limitação
AssinaturaValide a origem de acordo com o contratoNão torna os efeitos únicos
DesduplicaçãoReconhecer notificações repetidasVerificar também a concorrência e os efeitos comerciais
ConciliaçãoEncontrar omissões e diferençasNomear a origem e o período

Indicadores de gestão

IndicadorO que medePrimeira ação
Idade da filaAtraso de eventos incompletosInspecionar o mais antigo
Efeitos duplicadosAções comerciais repetidas por enganoCorrigir a atomicidade
Lacunas entre origem e aplicaçãoEstados ausentes ou divergentesConciliar com evidências de fechamento

Erros comuns

  • Analisar antes da verificação do corpo assinado
  • Confirmar antes do recebimento duradouro
  • Assumir entrega ordenada
  • Testar duplicados apenas sequencialmente

Perguntas frequentes

O sucesso HTTP significa que o processamento está completo?

Depende do contrato. Com processamento assíncrono, deve significar recebimento duradouro, enquanto o estado comercial é rastreado separadamente.

É possível assumir a entrega exatamente uma vez?

Projeto para repetições e falhas sob o contrato real, com efeitos únicos e reconciliação.

O corpo inteiro deve ser retido?

Somente quando necessário, com acesso e retenção adequados. Rastreamentos mínimos devem suportar o diagnóstico e a recuperação sem manter segredos.

Referências oficiais

As referências apoiam o método. Adapte as verificações ao seu contexto; elas não são uma certificação. Os títulos das referências originais e os documentos de origem podem estar em outro idioma.

Referências consultadas em .