O que é deduplicação
Deduplicação é a identificação e o tratamento de ocorrências que representam o mesmo item ou evento. Ela permite reconhecer, por exemplo, que dois avisos recebidos por webhook correspondem à mesma confirmação, em vez de tratar cada entrega como um fato novo.
O significado de duplicado depende do processo. Duas linhas idênticas em uma importação podem ser repetição acidental, mas duas compras com o mesmo valor e o mesmo cliente podem ser legítimas e precisam continuar separadas.
A identidade precisa corresponder à ocorrência
O identificador do evento costuma ser um ponto de partida quando a origem garante sua unicidade no escopo usado. O código do cliente ou do pagamento identifica outro objeto e pode aparecer em vários eventos diferentes, como confirmação e reembolso.
Também confira se a identidade é única entre todas as origens integradas. Se dois serviços podem usar o mesmo valor, a combinação da origem com o identificador evita que uma ocorrência legítima seja descartada como duplicada da outra.
Lista atual e histórico de execuções
Eliminar duplicados dentro de uma lista resolve apenas a repetição que está presente naquela entrada. Um conjunto guardado somente na memória de uma execução pode desaparecer ao final dela e não reconhecer uma entrega recebida depois.
No n8n, o Remove Duplicates oferece comportamentos distintos para comparar itens da entrada atual ou usar informações de execuções anteriores. O modo e o escopo escolhidos precisam corresponder à repetição que você deseja tratar.
O histórico também pode ter limite de quantidade, prazo de retenção ou remoção manual. Depois que uma identidade sai desse histórico, uma entrega antiga pode voltar a ser considerada nova, por isso a proteção não deve ser descrita como ilimitada.
Duas chamadas podem chegar ao mesmo tempo
Uma sequência de consultar e depois registrar pode falhar diante de concorrência. Duas execuções podem consultar a mesma identidade ainda ausente e ambas começar o efeito antes de qualquer uma registrar a ocorrência.
Uma forma de coordenar essas execuções é gravar a identidade do evento sob uma restrição de unicidade antes de iniciar o efeito. Se o banco recusar a inserção por duplicidade, o código consulta o estado do evento para saber se ele terminou ou pode ser retomado. A restrição identifica a repetição, mas não confirma se o primeiro envio concluiu a chamada a outro serviço.
Esse registro não torna uma chamada externa parte da mesma transação do banco. A recuperação ainda precisa considerar uma execução interrompida depois de registrar a identidade ou depois de realizar o efeito no outro serviço.
Reconhecer o evento e concluir a tarefa
Marcar o evento como concluído antes de realizar sua ação pode impedir a recuperação depois de uma falha. Marcar apenas depois também exige tratar a situação na qual a ação terminou, mas o registro de conclusão não foi gravado.
Por isso, o processamento pode precisar distinguir recebido, em andamento e concluído, além de usar idempotência no destino. A deduplicação reduz trabalho repetido, enquanto a recuperação precisa preservar o que ainda está pendente.
Como verificar a deduplicação
Teste duas entregas consecutivas e duas simultâneas da mesma ocorrência, acompanhando quantos efeitos aparecem no destino. Inclua uma falha durante o processamento e confirme que a repetição consegue recuperar o trabalho necessário.
Envie também eventos distintos do mesmo cliente e confira se ambos continuam válidos. Esse teste mostra se o identificador escolhido reconhece duplicações reais ou está eliminando ocorrências que deveriam ser processadas.
Dúvidas frequentes
Perguntas frequentes sobre Deduplicação
- Posso deduplicar eventos apenas pelo código do cliente?
- Em geral, esse código identifica o cliente, não a ocorrência. O mesmo cliente pode produzir vários eventos legítimos. Use a identidade adequada ao que deve ser reconhecido como repetição.
- Remover duplicados da lista atual protege execuções futuras?
- Não automaticamente. Para reconhecer uma entrega posterior, o sistema precisa preservar o histórico pelo escopo e período necessários.
- Uma consulta antes de inserir impede duas execuções simultâneas?
- Sozinha, não. Duas execuções podem consultar antes de qualquer uma registrar a ocorrência. A implementação precisa coordenar o registro da identidade, por exemplo com uma restrição de unicidade apropriada.
- Deduplicação e idempotência são iguais?
- Não. A deduplicação identifica repetições. A idempotência descreve o efeito da repetição sobre a ação. As duas podem trabalhar juntas, mas reconhecer um evento não confirma que seu processamento terminou.
Para continuar
Recursos relacionados
Documentação
n8n: Remove Duplicates
Comparação na entrada atual e uso do histórico de execuções.
Abrir recursoDocumentação
Stripe: eventos duplicados
Identificação de entregas repetidas em uma integração com webhooks.
Abrir recursoDocumentação
PostgreSQL: restrições de unicidade
Restrições para impedir registros com a mesma combinação de valores.
Abrir recursoAplicação na formação
n8n Experts
A deduplicação identifica repetições para evitar que uma ocorrência seja processada novamente como trabalho inédito.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.