Eliminare i duplicati degli invii webhook

Usa l'ID evento dosya come chiave di idempotenza transazionale per impedire in sicurezza che tentativi automatici e reinvii manuali ripetano effetti a valle.

Ultima revisione

Gli screenshot mostrano l’interfaccia in inglese.

Usa l’ID evento per l’idempotenza dell’operazione. I tentativi automatici riutilizzano entrambi gli ID, ma il reinvio manuale crea intenzionalmente un nuovo ID invio mantenendo lo stesso ID evento e il contenuto esatto.

Quattro riquadri mostrano la lettura degli ID evento e invio, la registrazione transazionale dell'ID evento, l'esclusione di un evento ripetuto e il tracciamento separato dei tentativi.
Quattro riquadri mostrano la lettura degli ID evento e invio, la registrazione transazionale dell'ID evento, l'esclusione di un evento ripetuto e il tracciamento separato dei tentativi. Apri lo screenshot a dimensione intera.

Passaggi

  1. Verifica X-Dosya-Signature sul corpo grezzo, poi leggi X-Dosya-Event-Id e verifica che corrisponda a id al primo livello del corpo. Considera un valore assente o discordante come input non valido.
  2. Avvia una transazione nel database e inserisci l’ID evento in una tabella con vincolo di unicità. Conserva tipo di evento, primo ID invio, ora di ricezione e stato di elaborazione senza esporre il contenuto nei log ordinari.
  3. Se l’inserimento è in conflitto, restituisci 2xx dopo aver verificato che il record esistente sia confermato. Non riapplicare la modifica a valle solo perché X-Dosya-Delivery-Id è diverso.
  4. Se l’inserimento riesce, applica la modifica di stato e conferma il record di idempotenza nella stessa transazione o flusso atomico. Un arresto tra effetto e marcatore crea l’intervallo di duplicazione che questa struttura elimina.
  5. Conserva ogni ID invio in un registro dei tentativi per la diagnostica. Il tentativo automatico mantiene l’ID invio originale; Invia di nuovo crea un nuovo valore whd_… ma copia l’ID evento evt_… originale.
  6. Provoca un errore del ricevitore, consenti un nuovo tentativo e poi usa Invia di nuovo su quella riga. Verifica che tutte le richieste siano tracciabili mentre la tabella dell’operazione cambia una sola volta per l’ID evento condiviso.

Gli ID evento dosya vengono generati una volta per evento emesso. Un evento può raggiungere più destinazioni webhook sottoscritte, quindi la deduplicazione basata sull’evento protegge anche un ricevitore registrato accidentalmente più volte.

Riferimento per “Eliminare i duplicati degli invii webhook”: panoramica API REST di dosya con link Get API Key e View SDKs.
Riferimento per “Eliminare i duplicati degli invii webhook”: panoramica API REST di dosya con link Get API Key e View SDKs. Apri lo screenshot a dimensione intera.

Risultato previsto

Il primo evento verificato conferma un effetto a valle. Tentativi automatici e reinvio manuale in coda ricevono conferme 2xx senza duplicare l’effetto, mentre gli ID invio restano disponibili per il tracciamento operativo.

Compaiono ancora duplicati. Verifica che la registrazione univoca dell’ID evento e la modifica condividano una transazione; una scrittura separata “elaborato in seguito” può fallire dopo la modifica.

Un reinvio manuale è stato ignorato inaspettatamente. È corretto per un evento già completato. Crea un nuovo comando se un operatore intende davvero produrre un secondo effetto.

Guide correlate

Ti è stata utile?

Caricamento delle valutazioni…

Quando voti, salviamo un cookie tecnico per un massimo di 180 giorni, così puoi cambiare la tua risposta.

Domande e risposte

Fai una domanda sui passaggi di questa guida. Le domande vengono revisionate prima della pubblicazione.

Non inserire dati dell’account, credenziali o file privati nelle domande pubbliche. Usa l’assistenza privata in questi casi.

Caricamento delle domande…

    Accedi al tuo account dosya per fare una domanda.

    Controlla il risultato prima di riprovare

    Usa questi controlli quando devi verificare il risultato di un’attività.