Webhooks: gebeurtenissen ontvangen zonder dubbele acties

In het kort

Een webhook meldt een gebeurtenis via HTTP. Dit garandeert niet algemeen directe levering, volgorde of een eenmalig bedrijfseffect.

Lege beveiligde gang met servers en netwerken Illustratie · fictieve scène
In dit artikel

Scheid ontvangst en voltooide verwerking

Garanties verschillen per aanbieder. Stripe documenteert mogelijke duplicaten en geen gegarandeerde volgorde. Een succesvolle HTTP-reactie hoort bij duurzame ontvangst of bedoelde verwerking, niet slechts een verzoek in het geheugen.

SituatieVerwacht gedragBruikbaar bewijs
Dezelfde gebeurtenis twee keerVoorkom een dubbel bedrijfseffect.Verwerkte ID en blijvend resultaat.
Oudere gebeurtenis komt laterOverschrijf nieuwere status niet blind.Gezaghebbende status en overgangsregel.
Zware verwerkingDuurzame ontvangst, daarna uitgesteld werk.Wachtrijstatus en workerresultaat.
Ontbrekende leveringAfstemmen en herstellen volgens aanbiederregels.Vastgesteld verschil en gecontroleerde correctie.

Bouw controleerbare ontvangst

  • Controleer HTTPS, handtekeningen en replaybescherming volgens het protocol. Stripe verifieert de handtekening op de ruwe inhoud; eerst JSON wijzigen kan verificatie ongeldig maken.
  • Leg gebeurtenis of verwerking duurzaam vast vóór passende bevestiging. Onderscheid leverings-ID, gebeurtenis-ID en idempotentiesleutel van de bedrijfsactie.
  • Test duplicaten, verkeerde volgorde, workeronderbreking en herstart. Lees de gezaghebbende objectstatus als een oude gebeurtenis geen veilige beslissing toelaat.

Organiseer herstel en afstemming

Documenteer pogingen, termijnen, onverwerkte gebeurtenissen en afstemming met de aanbieder. Een snelle bevestiging kan latere uitval verbergen. Volg ook de uiteindelijke actie en beperk geheimen en persoonsgegevens in logboeken.

Primaire bronnen

Verwerk herhaalde webhooks veilig.

Een melding kan worden herhaald na een time-out of een verloren reactie. De betrouwbaarheid is afhankelijk van de verificatie van de oorsprong, een gebeurtenis-ID en de verwerking die een nieuw bericht scheidt van een duplicaat.

  • Verifieer elk verzoek met behulp van het mechanisme van de provider.
  • Test herhaalpogingen, duplicaten en gewijzigde aankomstvolgorde.
  • Bevestig consistent na verwerking of duurzame wachtrij.

Primaire bron: IETF RFC 9457 — Problem Details for HTTP APIs. Verwante methode: lees de praktische gids.