Webhooks: Ereignisse empfangen, Aktionen nicht verdoppeln

Kurz erklärt

Ein Webhook meldet ein Ereignis per HTTP. Er garantiert nicht allgemein sofortige Lieferung, Reihenfolge oder genau einmalige fachliche Wirkung.

Unbesetzter Sicherheitsbereich mit Servern und Netzwerken Illustration · fiktive Szene
In diesem Artikel

Empfang und abgeschlossene Verarbeitung trennen

Garantien hängen vom Anbieter ab. Stripe dokumentiert mögliche Duplikate und keine garantierte Reihenfolge. Eine erfolgreiche HTTP-Antwort sollte dauerhaftem Empfang oder vorgesehener Verarbeitung entsprechen, nicht nur einer Anfrage im Arbeitsspeicher.

SituationErwartetes VerhaltenNützlicher Nachweis
Dasselbe Ereignis zweimalDoppelte fachliche Wirkung verhindern.Verarbeitete ID und dauerhaftes Ergebnis.
Altes Ereignis kommt späterNeueren Zustand nicht blind überschreiben.Maßgeblicher Zustand und Übergangsregel.
Aufwendige VerarbeitungDauerhafter Empfang, danach verzögerte Arbeit.Warteschlangenzustand und Workerergebnis.
Fehlende LieferungNach Anbieterregeln abgleichen und nachholen.Erkannte Lücke und geprüfte Korrektur.

Überprüfbaren Empfang aufbauen

  • Prüfen Sie HTTPS, Signatur und Replay-Schutz nach Anbieterprotokoll. Stripe prüft die Signatur am unveränderten Inhalt der Anfrage; vorherige JSON-Umwandlung kann die Prüfung ungültig machen.
  • Speichern Sie Ereignis oder Verarbeitung dauerhaft vor der passenden Bestätigung. Unterscheiden Sie Lieferungs-ID, Ereignis-ID und Idempotenzschlüssel der fachlichen Aktion.
  • Testen Sie Duplikate, falsche Reihenfolge, Workerunterbrechung und Neustart. Lesen Sie den maßgeblichen Objektzustand, wenn ein altes Ereignis keine sichere Entscheidung erlaubt.

Wiederaufnahme und Abgleich organisieren

Dokumentieren Sie Versuche, Fristen, offene Ereignisse und Anbieterabgleich. Eine schnelle Bestätigung kann spätere Verarbeitungsfehler verbergen. Überwachen Sie auch die endgültige Aktion und begrenzen Sie Geheimnisse und personenbezogene Daten in Protokollen.

Primärquellen

Wiederholte Webhooks sicher verarbeiten.

Eine Benachrichtigung kann nach einem Timeout oder fehlender Antwort wiederholt werden. Die Zuverlässigkeit hängt von der Ursprungsverifizierung, einer Ereigniskennung und der Verarbeitung ab, die eine neue Nachricht von einem Duplikat trennt.

  • Jede Anfrage mithilfe des Mechanismus des Anbieters verifizieren.
  • Wiederholungsversuche, Duplikate und geänderte Ankunftsreihenfolge testen.
  • Nach der Verarbeitung oder der dauerhaften Warteschlange konsistent bestätigen.

Primärquelle: IETF RFC 9457 — Problem Details for HTTP APIs. Verwandte Methode: den praktischen Leitfaden lesen.