Webhooks vs. Polling: Event-getriebene Shop-Integration
Wenn ein Kunde im Shop bestellt, soll der Auftrag in Sekunden im ERP liegen. Wenn ein Lagerbestand sinkt, soll die Verfügbarkeit im Shop sofort stimmen. Die Frage, wie diese Ereignisse zwischen den Systemen reisen, entscheidet über Latenz, Last und Stabilität der gesamten Integration. Zwei Muster stehen dabei im Mittelpunkt: Webhooks, bei denen das Quellsystem aktiv ein Ereignis pusht, und Polling, bei dem das Zielsystem in festen Intervallen nachfragt. Erfahrungsgemäß sind 74 Prozent der öffentlichen Schnittstellen REST-basiert (Projekterfahrung) und damit grundsätzlich für beide Muster geeignet. Dieser Artikel zeigt, wann Webhooks die richtige Wahl sind, wann Polling überlegen ist, wie Sie mit HMAC-Signaturen und Retry-Strategien Zustellung und Sicherheit absichern und welcher hybride Ansatz sich in der API-Entwicklung für Shop-zu-ERP-Datenflüsse bewährt hat.
Webhooks und Polling: zwei Wege, ein Ziel
Polling ist das ältere und einfachere Muster. Das Zielsystem ruft in einem festen Takt eine Schnittstelle des Quellsystems auf und fragt: Gibt es seit meinem letzten Abruf etwas Neues? Bei einer Shop-zu-ERP-Anbindung könnte das ERP also alle fünf Minuten die Shop-API abfragen, ob neue Bestellungen vorliegen. Der Vorteil ist die Einfachheit: Das Quellsystem muss nichts über seine Konsumenten wissen, und der Client steuert den Takt selbst. Der Nachteil ist offensichtlich: Zwischen Ereignis und Verarbeitung liegt im Mittel die halbe Intervalldauer, und ein Großteil der Abfragen liefert keine neuen Daten.
Webhooks drehen die Richtung um. Sobald im Quellsystem ein Ereignis eintritt, sendet es selbstständig einen HTTPS-POST an eine vorab registrierte URL des Zielsystems. Die Latenz sinkt auf Sekunden, und es entsteht keine Last durch Leerabfragen. Dafür verschiebt sich die Komplexität: Das Zielsystem muss einen öffentlich erreichbaren Endpunkt betreiben, die Echtheit jeder Nachricht prüfen und mit der Tatsache umgehen, dass eine Zustellung auch fehlschlagen kann. In der Praxis ist diese Verschiebung lohnend, denn sie trägt der Realität ereignisgetriebener Geschäftsprozesse Rechnung. Eine durchdachte ERP-Anbindung wählt das Muster nicht ideologisch, sondern pro Datenfluss.
Die wirtschaftliche Bedeutung wächst mit dem Reifegrad der Integration. Erfahrungsgemäß entfallen im Durchschnitt 31 Prozent der IT-Budgets großer Organisationen auf Integration und API-Aufgaben (Projekterfahrung). Unzureichende Dokumentation und inkonsistente Schnittstellen erweisen sich dabei als wiederkehrende Haupthürden bei der API-Nutzung (Projekterfahrung). Je mehr Systeme miteinander sprechen, desto wichtiger wird ein konsistentes Muster für den Ereignistransport. Wer hier von Beginn an auf saubere Verträge, Signaturen und Wiederholungslogik setzt, spart später erhebliche Wartungsaufwände in der Schnittstellen-Entwicklung.
Latenz, Last und Aktualität im direkten Vergleich
Der entscheidende Unterschied zwischen beiden Mustern liegt in der Aktualität und der erzeugten Systemlast. Bei zeitkritischen Ereignissen wie eingehenden Bestellungen oder Bestandsänderungen mit Untergrenze zählt jede Sekunde. Der deutsche B2B-E-Commerce gehört mit einem Umsatzvolumen im dreistelligen Milliardenbereich zu den wachstumsstärksten Vertriebskanälen (BEVH, 2024), und kurze Reaktionszeiten zwischen Shop und ERP sind dafür eine technische Grundlage. Bei weniger flüchtigen Daten wie Artikelbeschreibungen oder einem nächtlichen Stammdatenabgleich ist eine Verzögerung von Minuten dagegen unkritisch. Die folgende Gegenüberstellung fasst die typischen Eigenschaften zusammen.
| Kriterium | Webhook (Push) | Polling (Pull) |
|---|---|---|
| Latenz | Sekunden, nahe Echtzeit | halbe Intervalldauer im Mittel |
| API-Last | nur bei echten Ereignissen | konstant, auch ohne Änderungen |
| Komplexität Empfänger | öffentlicher Endpunkt nötig | kein Endpunkt nötig |
| Zustellung | Retry und Quittung erforderlich | nächster Abruf holt verpasste Daten |
| Lastspitzen | möglich bei Massenereignissen | vorhersehbar durch festen Takt |
| Eignung | Bestellungen, Statuswechsel | Backfill, Abgleich, Massendaten |
Polling hat einen oft übersehenen Vorteil: Vorhersehbarkeit. Da das Zielsystem den Takt vorgibt, sind Lastspitzen planbar und das Quellsystem wird nie überrannt. Genau das wird bei Webhooks zur Herausforderung, wenn ein einzelnes Ereignis im Quellsystem viele Folgenachrichten erzeugt, etwa ein Preislisten-Import, der zehntausende Artikel berührt. Hier hilft serverseitiges Batching oder eine Drosselung. Laut Gartner scheitern Integrationsinitiativen überdurchschnittlich oft an genau solchen nicht-funktionalen Anforderungen wie Lastverhalten und Fehlertoleranz (Gartner, 2024), nicht an der eigentlichen Fachlogik.
Webhook für zeitkritisches
Bestelleingang, Zahlungsbestätigung und Statuswechsel profitieren vom Push: Das ERP erfährt das Ereignis in Sekunden statt nach dem nächsten Abfragezyklus.
Polling für Abgleich
Periodische Vollabgleiche und Stammdaten-Backfill laufen zuverlässig per Polling, weil das Zielsystem Takt und Last selbst kontrolliert.
Hybrid als Standard
Push für Aktualität, ergänzt um ein Polling-Sicherheitsnetz, das verpasste Ereignisse nachzieht. So entsteht eine robuste Gesamtarchitektur.
Signatur statt Vertrauen
Jeder eingehende Webhook wird per HMAC-Signatur geprüft, bevor die Nutzlast verarbeitet wird. Ein offener Endpunkt ohne Prüfung ist ein Sicherheitsrisiko.
Delta statt Vollabzug
Polling fragt nur Daten ab, die sich seit dem letzten Cursor geändert haben. Das hält die übertragenen Mengen klein und die APIs schnell.
Fehler einplanen
Timeouts, Netzausfälle und ungültige Nutzlasten sind Normalfälle. Retry-Queue und Dead Letter Queue fangen sie auf, ohne Ereignisse zu verlieren.
Zustellgarantie: warum at-least-once das realistische Ziel ist
Im verteilten System gibt es keine perfekte Zustellung ohne Kompromisse. Drei Modelle sind gebräuchlich: at-most-once (höchstens einmal, Verlust möglich), at-least-once (mindestens einmal, Duplikate möglich) und exactly-once (genau einmal). Echtes exactly-once über Systemgrenzen hinweg ist aufwendig und in der Praxis selten nötig. Der pragmatische Standard für Shop-zu-ERP-Datenflüsse ist at-least-once kombiniert mit Idempotenz auf der Empfängerseite, sodass Mehrfachzustellungen keinen Schaden anrichten.
Konkret bedeutet das: Der Webhook-Empfänger quittiert eine erfolgreich angenommene Nachricht mit einem 2xx-Statuscode. Antwortet er nicht oder mit einem Fehler, wiederholt das Quellsystem die Zustellung nach einem Wartemuster. Genau hier entstehen Duplikate, wenn die erste Zustellung zwar verarbeitet wurde, die Quittung aber verloren ging. Die Lösung ist ein eindeutiger Idempotenz-Schlüssel pro Ereignis, den der Empfänger speichert und gegen den er jede eingehende Nachricht prüft. Eine vertiefte Behandlung dieses Themas finden Sie im Schwester-Artikel zu Idempotenz und Retry-Strategien.
Quittung ist kein Verarbeitungsversprechen
Polling hat bei der Zustellung einen strukturellen Vorteil: Verpasst der Client einen Abruf, etwa wegen Wartung, holt der nächste Lauf alle zwischenzeitlichen Änderungen nach, solange der Cursor korrekt fortgeschrieben wird. Es geht nichts verloren, weil das Zielsystem den Stand selbst kontrolliert. Diese Eigenschaft macht Polling zum idealen Sicherheitsnetz hinter Webhooks und ist der Kern des hybriden Ansatzes, den wir weiter unten beschreiben.
Sicherheit: HMAC-Signaturen und Schutz der Webhook-Route
Ein Webhook-Endpunkt ist öffentlich erreichbar, also muss er jede Nachricht als potenziell gefälscht behandeln, bis ihre Echtheit bewiesen ist. Das verbreitetste Verfahren ist eine HMAC-Signatur. Quell- und Zielsystem teilen ein geheimes Schlüsselmaterial. Das Quellsystem berechnet über den rohen Nachrichtenkörper einen HMAC, üblicherweise mit SHA-256, und sendet das Ergebnis in einem HTTP-Header mit. Der Empfänger berechnet den HMAC mit demselben Geheimnis erneut und vergleicht beide Werte. Stimmen sie nicht überein, wird die Nachricht verworfen.
import crypto from 'crypto';
function verifyWebhook(rawBody, signatureHeader, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody) // ROHEN Body verwenden, nicht das geparste JSON
.digest('hex');
// Vergleich in konstanter Zeit gegen Timing-Angriffe
const a = Buffer.from(expected);
const b = Buffer.from(signatureHeader);
return a.length === b.length && crypto.timingSafeEqual(a, b);
}Zwei Details entscheiden über die Qualität der Prüfung. Erstens muss die Signatur über den unveränderten Rohkörper berechnet werden, nicht über ein neu serialisiertes JSON, da schon eine umgestellte Schlüsselreihenfolge die Signatur bricht. Zweitens muss der Vergleich in konstanter Zeit erfolgen, damit ein Angreifer nicht über Laufzeitunterschiede Rückschlüsse ziehen kann. Laut OWASP API Security Project gehören fehlende oder fehlerhafte Authentifizierung und Autorisierung zu den am häufigsten ausgenutzten Schwachstellen in Schnittstellen (OWASP API Security Top 10, 2023).
- HMAC-SHA256 über den Rohkörper: Signatur immer vor dem JSON-Parsing prüfen, geheimes Schlüsselmaterial niemals im Code oder Log.
- Zeitstempel gegen Replay: Ein mitgesendeter und signierter Zeitstempel verhindert, dass abgefangene Nachrichten später erneut eingespielt werden. Nachrichten außerhalb eines kurzen Toleranzfensters ablehnen.
- Transportverschlüsselung: Webhooks ausschließlich über TLS, optional mit gegenseitiger Authentifizierung (mTLS) bei besonders sensiblen Datenflüssen.
- IP-Allowlist als zweite Schicht: Wenn das Quellsystem feste Adressbereiche nutzt, ergänzt eine Allowlist die Signaturprüfung, ersetzt sie aber nicht.
- Schlüsselrotation: Das geteilte Geheimnis regelmäßig wechseln und einen Übergangszeitraum mit zwei gültigen Schlüsseln einplanen.
Polling hat hier ein anderes, einfacheres Sicherheitsprofil. Da das Zielsystem die Verbindung aufbaut, genügen serverseitige Anmeldedaten wie ein OAuth-Token oder ein API-Schlüssel, und es ist kein eingehender Endpunkt zu schützen. Diese geringere Angriffsfläche ist ein realer Vorteil, der in der Bewertung der beiden Muster oft zu kurz kommt. Eine professionelle Schnittstellen-Konzeption wiegt den Aktualitätsgewinn von Webhooks gegen den geringeren Sicherheitsaufwand von Polling pro Datenfluss ab.
Ausfallsicherheit: Retry, Backoff und Dead Letter Queue
Kein Empfänger ist permanent erreichbar. Wartungsfenster, Deployments, überlastete Datenbanken oder Netzausfälle sind Normalfälle, keine Ausnahmen. Eine robuste Webhook-Verarbeitung beantwortet die Frage, was mit einem Ereignis passiert, dessen Zustellung scheitert. Die bewährte Antwort ist eine Wiederholung mit exponentiellem Backoff: Nach dem ersten Fehlversuch wartet das Quellsystem kurz, dann immer länger, etwa nach einigen Sekunden, dann Minuten, dann Stunden, bis ein Maximum erreicht ist.
Ein wichtiges Detail ist Jitter, also eine zufällige Streuung der Wartezeiten. Ohne Jitter würden nach einem Ausfall alle aufgestauten Ereignisse gleichzeitig erneut zugestellt und könnten den gerade erst wiederhergestellten Empfänger sofort wieder überlasten. Ereignisse, die nach allen Versuchen nicht zugestellt werden konnten, wandern in eine Dead Letter Queue. Dort liegen sie sicher für eine spätere manuelle oder automatische Wiederaufnahme und lösen ein Alerting aus. Genau diese Mechanik sorgt dafür, dass auch ein längerer Ausfall keinen Datenverlust bedeutet.
Polling als Sicherheitsnetz
Auf der Empfängerseite gehört zur Ausfallsicherheit ebenso, schwere Verarbeitung von der Annahme zu trennen. Der Webhook-Endpunkt validiert die Signatur, schreibt die Nachricht in eine interne Queue und antwortet sofort mit 2xx. Die eigentliche Verarbeitung, etwa das Anlegen eines Auftrags im ERP, geschieht asynchron durch Worker. Fällt die Verarbeitung aus, wird sie aus der internen Queue heraus wiederholt, ohne dass das Quellsystem davon betroffen ist. Diese Entkopplung ist ein zentrales Prinzip jeder belastbaren Integrationsarchitektur.
Praxis: Shop-zu-ERP-Datenflüsse richtig zuordnen
In einer realen Anbindung zwischen Shop und ERP existiert nicht ein Datenfluss, sondern ein Dutzend, jeder mit eigenen Aktualitäts- und Lastanforderungen. Die Kunst besteht darin, pro Fluss das passende Muster zu wählen, statt alles über einen Kamm zu scheren. Bestellungen, Zahlungs- und Versandstatus sind klassische Push-Kandidaten, weil hier Sekunden zählen. Stammdaten, Preislisten und ein nächtlicher Konsistenzabgleich sind klassische Pull-Kandidaten, weil hier Vollständigkeit wichtiger ist als Geschwindigkeit.
- Bestelleingang (Shop zu ERP): Webhook bei Bestellabschluss, der den Auftrag in Sekunden ins ERP übergibt. Idempotenz-Schlüssel ist die Bestellnummer.
- Bestandsänderung (ERP zu Shop): Webhook bei jeder Lagerbewegung für nahe Echtzeit, ergänzt durch einen Delta-Abgleich alle wenigen Minuten als Sicherheitsnetz.
- Statuswechsel (ERP zu Shop): Webhook bei Versand- und Rechnungsstatus, damit Kunden den aktuellen Stand sehen, ohne dass der Shop dauerhaft das ERP abfragt.
- Stammdaten und Preise: Polling im Intervall von Minuten bis Stunden, da große Mengen betroffen sind und eine kurze Verzögerung unkritisch ist.
- Konsistenzabgleich: Nächtliches oder stündliches Polling, das beide Systeme vergleicht und Abweichungen aus verpassten Ereignissen korrigiert.
Dieser Mix ist kein Kompromiss, sondern die überlegene Lösung. Laut einer Erhebung des Branchenverbands BITKOM sehen mittelständische Unternehmen in der Automatisierung von Geschäftsprozessen einen der wichtigsten Hebel zur Effizienzsteigerung (BITKOM, 2024). Statista weist für den deutschen E-Commerce über die vergangenen Jahre ein anhaltend zweistelliges Wachstum des digitalen Handels aus (Statista, 2024), was den Druck auf belastbare Systemanbindungen weiter erhöht. Ein durchdachter Ereignistransport ist die technische Voraussetzung dafür, denn er entscheidet, ob die Automatisierung schnell, zuverlässig und nachvollziehbar arbeitet. In über 50 Integrationsprojekten (Projekterfahrung) hat sich der beschriebene Hybridansatz als robuster Standard erwiesen.
Hybride Architektur: Push plus Polling-Sicherheitsnetz
Der reife Standard für Shop-zu-ERP-Datenflüsse ist weder reines Polling noch reine Webhooks, sondern eine bewusste Kombination. Webhooks liefern die niedrige Latenz für zeitkritische Ereignisse. Ein periodisches Delta-Polling läuft als unabhängiges Sicherheitsnetz im Hintergrund und fängt alles auf, was der Push-Weg verloren oder verpasst hat. Die Middleware zwischen den Systemen bildet beides ab und entkoppelt die fachliche Verarbeitung vom Empfang.
Diese Schicht übernimmt mehrere Aufgaben gleichzeitig: Sie validiert eingehende Webhook-Signaturen, persistiert jedes Ereignis mit seinem Idempotenz-Schlüssel, verarbeitet es asynchron in Richtung ERP und führt parallel den Delta-Abgleich aus. Dadurch ist das System gegen Einzelausfälle resistent, ohne dass Shop oder ERP von der Komplexität etwas mitbekommen. Wer eine bestehende Anbindung modernisieren möchte, kann diesen Ansatz schrittweise einführen, etwa indem zuerst der kritischste Fluss auf Webhooks umgestellt wird, während der Rest vorerst per Polling läuft. Eine begleitende Integrationsberatung hilft, die Reihenfolge an Ihren Prozessen auszurichten.
Die Faustregel
Die Frage ist selten Webhook oder Polling, sondern welcher Datenfluss welches Muster braucht und wie beide zusammen ein System ergeben, das auch an einem schlechten Tag keine Bestellung verliert.