Warum man sie verwechselt: Ein Webhook ist ein HTTP-Aufruf, meist POST mit JSON-Body, den ein System bei einem Ereignis an eine hinterlegte URL sendet. Kommt derselbe Aufruf zweimal an, sieht das nach einem Fehler des Absenders aus.
Genau einmal: Bei exactly-once garantiert der Sender, dass jedes Ereignis genau eintrifft, also weder mehrfach noch gar nicht. Das klingt ideal, ist aber über offene Netze kaum zusicherbar. Der Sender weiß oft nicht, ob die Zustellung ankam.
Mindestens einmal: Bei at-least-once garantiert der Sender nur, dass ein Ereignis ankommt, und nimmt dafür zusätzliche Kopien in Kauf. Bleibt die Bestätigung aus, wiederholt er die Zustellung. Ein Zahlungsdienst sendet den Webhook für eine Buchung, der Empfänger verarbeitet sie, doch die Antwort geht verloren. Sekunden später trifft derselbe Vorgang mit derselben Ereignis-ID erneut ein.
Exactly-once verschiebt die Schwierigkeit zum Sender, at-least-once zum Empfänger. Der Empfänger muss idempotent sein, also jedes Ereignis an seiner eindeutigen ID erkennen und überspringen. Die ID wirkt wie ein Kassenbon, der zeigt, dass der Vorgang schon abgearbeitet ist.
Faustregel: In einer Automation mit Webhook-Trigger gehört die Duplikatprüfung an den Anfang des Workflows, vor jedem Schritt, der Daten anlegt oder versendet. Denn nach der zweiten Buchung ist ein Zurücknehmen kaum noch möglich. Zusätzlich zügig mit einem 2xx-Status (HTTP-Erfolgscodes wie 200) antworten und die eigentliche Arbeit entkoppelt erledigen, sonst erzeugt man selbst weitere Wiederholungen.
At-least-once heißt nicht, dass der Sender defekt ist, sondern dass er lieber doppelt sendet als gar nicht.
📌 At-least-once · Idempotenz · Ereignis-ID
📚 Automatisierung von Grund auf · Tag 4 von 30
#Automatisierung #Webhooks #Integration