Eine API, Application Programming Interface, ist lediglich eine dokumentierte Möglichkeit für eine Software, eine andere Software um Daten zu bitten oder etwas auszulösen. Wenn ein CRM einen neuen Kontakt an eine E-Mail-Plattform sendet oder ein Online-Shop eine Bestellung an ein Buchhaltungssystem übergibt, nutzen sie APIs.
Drei gängige Muster
Request / Response
Ein System fragt, das andere antwortet: "gib mir diesen Kunden", "erstelle diese Bestellung". Einfach und vorhersehbar, erfordert aber, dass eine Seite weiß, wann sie fragen muss.
Webhooks
Statt wiederholt zu fragen, schickt das Quellsystem ein Ereignis an eine URL, wenn etwas passiert: "eine neue Rechnung wurde erstellt", "eine Zahlung war erfolgreich". Geringere Latenz und effizienter für ereignisgesteuerte Abläufe.
Geplante Synchronisierung
Periodische Jobs bewegen Daten in Stapeln, jede Stunde, jede Nacht, jede Woche. Nützlich, wenn Aktualität nicht kritisch ist und ein Push unpraktisch ist.
Die meisten Integrationen in der Praxis kombinieren mindestens zwei davon.
Was eine Integration zuverlässig macht
- Klare Datenhoheit. Ein System ist die Quelle der Wahrheit für jedes Datenelement. Andere erhalten Kopien.
- Idempotente Operationen. Denselben Aufruf zweimal zu wiederholen erzeugt dasselbe Ergebnis, unerlässlich für Webhooks und instabile Netzwerke.
- Sichtbare Fehlerbehandlung. Fehler gehen dorthin, wo ein Mensch sie sehen kann, nicht in ein stilles Log, das niemand liest.
- Eingehaltene Rate-Limits. Gute Integrationen bremsen ab, wenn die andere Seite langsam oder gedrosselt ist.
- Versionsbewusstsein. APIs ändern sich. Behandeln Sie die Integration als Code, der Updates braucht, nicht als einmalige Verdrahtung.
Was eine Integration fragil macht
- CSV-Exporte, die im Unternehmen herumgemailt und manuell wieder importiert werden.
- Fest codierte Zugangsdaten an Stellen, die niemand mehr erinnert.
- Ein langes Skript, das alles ohne Retry-Logik erledigt.
- Stille Fehler, der Datenfluss stoppt, und niemand bemerkt es über Wochen.
- Zwei-Wege-Synchronisierung ohne klare Konfliktregeln: Welche Seite gewinnt, wenn beide geändert haben?
Middleware oder direkte Integration?
Es gibt drei wesentliche Ansätze:
- Direkte Integration: System A kommuniziert direkt mit System B. Am einfachsten für eine Verbindung, wird unübersichtlich, wenn es viele gibt.
- Integrationsplattform (iPaaS): ein dediziertes Tool wie eine Workflow-Plattform übernimmt die Connectoren. Gut für einfache, gängige Abläufe; kann bei komplexer Logik teuer und undurchsichtig werden.
- Individuelle Middleware: ein kleiner interner Dienst, der die Integrationslogik, Übersetzungen und Fehlerbehandlung besitzt. Oft die richtige Wahl, wenn die Logik spezifisch für das Unternehmen ist.
Die beste Antwort hängt davon ab, wie viele Systeme miteinander kommunizieren müssen, wie viel individuelle Logik beteiligt ist und ob Sie die Geschäftsregeln in der Oberfläche eines Anbieters oder in eigenem Code haben möchten.
Ein konkretes Webhook-Beispiel
Angenommen, eine E-Commerce-Plattform soll Ihr Buchhaltungssystem benachrichtigen, sobald eine Bestellung bezahlt ist. Statt jede Minute abzufragen, ruft der Shop Ihren Endpunkt mit einer kleinen JSON-Payload auf:
{
"event": "order.paid",
"event_id": "evt_8f3c21a9",
"occurred_at": "2024-11-12T09:41:07Z",
"order": {
"id": "ORD-10427",
"total": 1499.00,
"currency": "PLN",
"customer_email": "k.nowak@example.com"
}
}
Der empfangende Dienst sollte die Anfrage annehmen, einen Signatur-Header überprüfen, die event_id speichern und schnell 200 zurückgeben. Die eigentliche Arbeit, etwa das Erstellen einer Rechnung, geschieht in einem Hintergrund-Job. Wenn dasselbe Ereignis zweimal eintrifft, verhindert die gespeicherte event_id eine doppelte Rechnung.
Faustregel: Webhook-Handler sollten schnell bestätigen und die Arbeit asynchron erledigen. Alles Langsame oder Fragile, ein Drittanbieter-API-Aufruf, ein PDF-Rendering, gehört in eine Queue, nicht in den HTTP-Handler.
Wiederholungen ohne Duplikate behandeln
Jede zuverlässige Integration braucht einen Idempotenz-Schlüssel. Ein minimales Muster in Pseudocode:
async function handleOrderPaid(event) {
if (await seen(event.event_id)) return; // already processed
await markSeen(event.event_id);
await queue.enqueue('create-invoice', event.order);
}
Häufige Fehler
- Zu früh integrieren. Wenn der Prozess nicht stabil ist, codiert die Integration das Durcheinander ein und macht es schwerer zu ändern.
- Zwei-Wege-Synchronisierung standardmäßig. Eine Richtung ist einfacher und oft ausreichend, gehen Sie nur dann zwei Wege, wenn das Unternehmen es wirklich braucht.
- Kein Monitoring. Eine Integration ohne Alarmierung ist ein stiller Fehler, der nur darauf wartet zu passieren.
- Enge Kopplung. Änderungen in einem System sollten nicht alle anderen kaputtmachen. Behalten Sie eine Übersetzungsschicht.
Ein realistischer Ansatz
- Zeichnen Sie den Datenfluss: welches System welches Feld besitzt und wer Kopien braucht.
- Beginnen Sie mit dem schmerzhaftesten einzelnen Ablauf und bauen Sie ihn zuerst in einer Richtung.
- Nutzen Sie Webhooks, wo geringe Latenz zählt, geplante Synchronisierung, wo nicht.
- Fügen Sie Monitoring vom ersten Tag an hinzu, nicht erst nach dem ersten Ausfall.
- Dokumentieren Sie Zugangsdaten, Endpunkte und Verantwortlichkeiten, damit die Integration Personalwechsel übersteht.

