Webhooks statt Polling: Systeme in Echtzeit
Webhooks statt Polling: warum ständiges Nachfragen Verschwendung ist, wie die Signatur schützt und was bei einem Ausfall passieren muss.
Zwei Systeme, die zusammenarbeiten sollen, haben zwei Möglichkeiten. Entweder das eine fragt regelmäßig nach — „gibt es etwas Neues?” —, oder das andere meldet sich, wenn es etwas Neues gibt. Das Erste heißt Polling, das Zweite Webhook. Der Unterschied klingt technisch und entscheidet in der Praxis darüber, ob eine Integration ruhig läuft oder ständig Aufmerksamkeit kostet.
Warum Nachfragen die schlechtere Hälfte ist
Beim Polling fragt Ihr System in festen Abständen. Alle fünf Minuten, alle Stunde, jede Nacht. Das hat drei unangenehme Eigenschaften.
Es ist fast immer umsonst: Von 288 Abfragen am Tag bringen vielleicht zwölf ein Ergebnis. Die anderen 276 kosten Aufrufe, die auf Ihr Limit gehen.
Es ist trotzdem zu langsam: Wer alle fünf Minuten fragt, erfährt Dinge im Schnitt zweieinhalb Minuten zu spät. Für eine Bestellung, die ins Lager soll, ist das oft egal. Für eine Zahlung, die eine Lieferung freigibt, nicht.
Und es ist fragil im Detail: Man muss sich merken, bis wohin man schon gelesen hat. Verschiebt sich diese Marke — weil ein Lauf abgebrochen ist, weil eine Zeitzone anders gerechnet wird —, fehlen Daten, und niemand merkt es.
Was ein Webhook tatsächlich ist
Ein Webhook ist eine Adresse, die Sie hinterlegen. Passiert etwas — ein Dokument entsteht, eine Rechnung ändert ihren Status —, schickt die Software eine Nachricht an diese Adresse. Kein Nachfragen, keine Marke, keine leeren Runden.
Damit das im Betrieb hält, braucht es drei Dinge, nach denen man vor dem Kauf fragen sollte.
1. Eine Signatur, sonst glaubt man jedem
Ihre Webhook-Adresse ist öffentlich erreichbar. Ohne Prüfung kann jeder, der sie kennt, eine erfundene Nachricht schicken — und Ihr System legt einen erfundenen Auftrag an.
Deshalb wird jede Zustellung signiert: Der Absender berechnet aus dem Inhalt und einem gemeinsamen Geheimnis eine Prüfsumme und schickt sie mit. Ihr System rechnet nach. Stimmt sie nicht, wird die Nachricht verworfen.
Ein Detail, das oft fehlt: Der Zeitstempel muss Teil des signierten Inhalts sein. Sonst kann jemand eine echte, mitgeschnittene Nachricht später erneut abschicken — die Signatur stimmt ja noch. Ist der Zeitstempel mitsigniert, fällt die Wiederholung auf.
2. Wiederholungen, die auseinandergehen
Ihr Server ist irgendwann nicht erreichbar. Ein Neustart, ein Zertifikat, ein Netz — es passiert. Die Frage ist, was der Absender dann tut.
Sofort nochmal schicken hilft nicht: Wer gerade neu startet, ist auch eine Sekunde später nicht da. Vernünftig sind wachsende Abstände — sofort, nach 30 Sekunden, nach 5 Minuten, nach einer halben Stunde, nach zwei Stunden. Das überbrückt den kurzen Neustart genauso wie den längeren Ausfall.
Und: Ein Fehler in Ihrer Anfrage (falsches Format, widerrufener Schlüssel) wird nicht wiederholt. Fünfmal dasselbe zu schicken repariert kein Format — es verdeckt nur den eigentlichen Fehler.
3. Ein Ende, wenn niemand mehr zuhört
Wenn eine Adresse dauerhaft nicht antwortet, muss der Absender irgendwann aufhören und das sagen. Sonst laufen Zustellungen ins Leere, bis es jemandem auffällt — meist Wochen später, wenn Daten fehlen.
Bei Blina Desk wird eine Adresse nach fünf erschöpften Zustellungen in Folge stillgelegt und muss von Hand wieder aktiviert werden. „Erschöpft” heißt: alle Wiederholungen sind durch. Ein einzelner Aussetzer stellt nichts still.
Was Ihr Empfänger können muss
Auch die andere Seite hat Pflichten, und zwei davon werden regelmäßig vergessen.
Schnell antworten. Nehmen Sie die Nachricht an, bestätigen Sie sie, und dann verarbeiten Sie sie. Wer erst rechnet und dann antwortet, läuft in Zeitüberschreitungen und bekommt dieselbe Nachricht nochmal.
Doppelte vertragen. Genau deshalb kann dieselbe Nachricht zweimal ankommen. Ihr Empfänger muss das aushalten, ohne den Auftrag doppelt anzulegen: Jede Zustellung hat eine Kennung, und die haben Sie schon einmal gesehen — oder eben nicht.
Die Faustregel
Nehmen Sie Webhooks für alles, was zeitnah passieren soll, und behalten Sie einen nächtlichen Abgleich als Netz darunter. Der Webhook hält die Systeme im Takt; der Abgleich fängt das, was in einer Nacht mit schlechter Verbindung liegen geblieben ist. Zusammen ergeben sie eine Integration, an die man nicht mehr denken muss — und das ist bei Integrationen das höchste Lob.