Der Kunde schließt seine Bestellung ab, sieht kurz einen Ladekreis und erhält anschließend eine Fehlermeldung. Im Shop ist kein Auftrag zu finden. Beim Zahlungsdienst wurde der Betrag trotzdem reserviert. Für den Kunden ist unklar, ob er erneut bestellen soll. Im Service beginnt die Suche in mehreren Systemen.
Solche Fälle entstehen selten, weil die gesamte Website ausgefallen ist. Häufig funktioniert die eigene Anwendung einwandfrei, während ein externer Dienst langsam antwortet, eine Verbindung abbricht oder ein unerwartetes Ergebnis liefert. Die technische Störung dauert vielleicht nur wenige Sekunden. Der widersprüchliche Geschäftsvorgang beschäftigt das Unternehmen deutlich länger.
APIs verbinden heute Zahlungsanbieter, Warenwirtschaft, Versand, CRM, Newsletter, Karten, Identitätsdienste und zahlreiche weitere Systeme. Das ist sinnvoll. Niemand sollte eine Zahlungsabwicklung oder einen Geodatendienst neu entwickeln, wenn spezialisierte Anbieter diese Aufgabe zuverlässig übernehmen. Mit jeder Integration wird aber ein Teil des eigenen Prozesses von einem System abhängig, das außerhalb der eigenen Kontrolle betrieben wird.
Wir erleben häufig, dass Schnittstellen beim Projektstart sorgfältig implementiert und danach wie eine dauerhafte Leitung behandelt werden. Solange Daten fließen, beschäftigt sich niemand mit ihnen. Erst ein Ausfall zeigt, dass weder ein aussagekräftiges Monitoring noch ein definierter Ersatzprozess vorhanden ist. Dann wird aus einem technischen Detail ein Problem für Verkauf, Buchhaltung und Kundenservice.
In der Entwicklung wird eine API meist unter guten Bedingungen getestet. Zugangsdaten stimmen, der Testdienst ist erreichbar und die Antwort entspricht der Dokumentation. Das beweist, dass eine Verbindung grundsätzlich funktioniert. Über den späteren Betrieb sagt es wenig aus.
Produktive Schnittstellen reagieren nicht immer gleich. Antworten werden langsamer, Limits greifen, einzelne Felder fehlen oder ein vorgeschalteter Schutzdienst liefert statt JSON plötzlich eine HTML-Fehlerseite. Wartungsfenster, Netzprobleme und interne Störungen beim Anbieter kommen hinzu. Auch das eigene System kann eine Antwort zu spät verarbeiten oder einen Webhook übersehen.
Eine robuste Integration geht daher nicht von einer permanent verfügbaren Gegenstelle aus. Sie plant Fehler als normalen Betriebszustand ein. Das klingt zunächst pessimistisch, ist aber schlicht realistisch. Jedes verteilte System enthält Komponenten, die zeitweise nicht erreichbar sind.
Der Unterschied zwischen einer einfachen und einer belastbaren Integration zeigt sich nach dem Fehler. Bleibt der Vorgang nachvollziehbar, kann er kontrolliert wiederholt werden und erhält der Nutzer eine brauchbare Rückmeldung, ist die Störung beherrschbar. Gehen Daten verloren oder entstehen doppelte Buchungen, fehlt ein Betriebskonzept.
Ohne festgelegtes Timeout kann eine Anwendung sehr lange auf eine externe Antwort warten. Währenddessen bleiben Verbindungen, Prozesse und Arbeitsspeicher belegt. Bei vielen parallelen Anfragen reicht ein langsamer Fremddienst dann aus, um die eigene Anwendung zunehmend zu blockieren.
Ein pauschal sehr kurzes Timeout löst das Problem ebenfalls nicht. Eine Adressprüfung darf vielleicht nach zwei Sekunden abgebrochen werden. Für die Erstellung eines umfangreichen Berichts oder den Upload einer großen Datei wäre derselbe Wert unrealistisch. Die Grenze muss zur Funktion und zur Nutzererwartung passen.
Technisch unterscheiden wir außerdem Verbindungs- und Antwortzeiten. Bereits der Aufbau einer Verbindung kann scheitern. Nach erfolgreicher Verbindung kann der Dienst trotzdem zu lange für seine Antwort benötigen. Gute Bibliotheken erlauben getrennte Grenzwerte und liefern unterschiedliche Fehlerursachen.
Für den Fachprozess ist wichtig, was nach einem Timeout geschieht. Bei einer optionalen Produktempfehlung kann die Seite ohne Zusatzinformation weiterlaufen. Bei einer Zahlung darf das System nicht einfach behaupten, der Vorgang sei gescheitert. Die Anfrage könnte beim Anbieter verarbeitet worden sein, während nur die Antwort verloren ging.
Ein klares Nein lässt sich verarbeiten. Eine Zahlung wurde abgelehnt, eine Adresse nicht gefunden oder ein Versandauftrag nicht angenommen. Schwieriger ist ein unbekannter Zustand. Das eigene System hat eine Anfrage versendet, aber keine verlässliche Antwort erhalten.
Wird dieselbe Aktion blind wiederholt, kann sie doppelt ausgeführt werden. Ein Kunde wird zweimal belastet, ein Gutschein zweimal erstellt oder ein Paket doppelt angekündigt. Wird auf eine Wiederholung verzichtet, bleibt möglicherweise ein erfolgreich ausgeführter Vorgang im eigenen System unberücksichtigt.
Bei kritischen Aktionen braucht die Integration deshalb eine eindeutige Vorgangskennung. Der externe Dienst sollte dieselbe Kennung bei einer Wiederholung erkennen und nicht noch einmal ausführen. Dieses Verhalten wird als Idempotenz bezeichnet. Der Fachbegriff ist weniger wichtig als das Prinzip: Dieselbe beabsichtigte Aktion darf trotz wiederholter Übertragung nur einmal wirksam werden.
Nicht jede API unterstützt dafür einen eigenen Schlüssel. Dann muss die Anwendung vor einer Wiederholung den aktuellen Zustand abfragen oder intern so buchen, dass Duplikate erkannt werden. Die Lösung hängt vom Dienst ab. Ein allgemeines „dreimal erneut versuchen“ ist bei schreibenden Vorgängen keine sichere Strategie.
Viele kurzzeitige Störungen verschwinden nach wenigen Sekunden. Ein erneuter Versuch ist dann sinnvoll. Wird eine Anfrage jedoch sofort und ohne Begrenzung wiederholt, verstärkt sie unter Umständen die Überlastung des Fremdsystems. Tausende Clients senden nahezu zeitgleich neue Anfragen und verhindern damit die Erholung.
Bewährt haben sich begrenzte Wiederholungen mit wachsenden Pausen. Nach dem ersten Fehler wartet die Anwendung kurz, danach etwas länger. Eine kleine zufällige Abweichung verhindert, dass alle Instanzen exakt zur selben Zeit erneut anfragen. In technischen Dokumentationen heißt dieses Muster Exponential Backoff mit Jitter.
Nicht jeder Fehler darf wiederholt werden. Eine ungültige Authentifizierung, ein fehlerhaftes Datenformat oder eine fachliche Ablehnung wird durch Warten nicht besser. Vor einer Wiederholung muss die Anwendung Fehlerklassen unterscheiden. Temporäre Server- und Netzwerkfehler werden anders behandelt als dauerhafte Eingabefehler.
Auch Angaben des Anbieters sollten berücksichtigt werden. Manche APIs teilen über einen Retry-After-Header mit, wann ein neuer Versuch sinnvoll ist. Rate-Limit-Informationen zeigen, wie viele Anfragen noch möglich sind. Wer diese Signale ignoriert, produziert vermeidbare Fehler und riskiert eine vorübergehende Sperrung.
Bei kleinen Datenmengen fallen API-Limits kaum auf. Ein nächtlicher Import läuft zuverlässig und die Anwendung bleibt weit unter den erlaubten Anfragen. Mit wachsendem Geschäft, einer neuen Synchronisation oder einem zusätzlichen Standort kann sich das schnell ändern.
Das Problem taucht häufig nach einer fachlich sinnvollen Erweiterung auf. Statt nur neue Bestellungen zu übertragen, sollen nun Bestände alle fünf Minuten abgeglichen werden. Die Zahl der Aufrufe vervielfacht sich. Das bisherige Tarifmodell oder das technische Limit passt nicht mehr zum Prozess.
Eine Integration sollte Limits daher nicht nur im Fehlerfall kennen. Sie muss Anfragen bündeln, Ergebnisse zwischenspeichern und unnötige Abrufe vermeiden. Wo möglich, sind Webhooks effizienter als ständiges Nachfragen. Der Anbieter meldet eine Änderung, statt dass das eigene System in kurzen Abständen nach ihr sucht.
Für größere Importe eignen sich Warteschlangen und kontrollierte Verarbeitung. Sie glätten Lastspitzen und verhindern, dass ein einzelner Benutzerprozess tausende API-Aufrufe parallel startet. Im Monitoring muss erkennbar bleiben, ob die Warteschlange abgearbeitet wird oder stetig wächst.
Webhooks wirken einfach: Ein Anbieter ruft eine definierte URL auf, sobald ein Ereignis eingetreten ist. In der Praxis kann die Zustellung scheitern, verspätet erfolgen oder wiederholt werden. Manche Anbieter garantieren zudem keine feste Reihenfolge der Ereignisse.
Die empfangende Anwendung sollte deshalb schnell bestätigen und die eigentliche Verarbeitung in eine Warteschlange legen. Dauert die komplette Geschäftslogik innerhalb des HTTP-Aufrufs zu lange, wertet der Anbieter die Zustellung möglicherweise als fehlgeschlagen und sendet sie erneut.
Doppelte Ereignisse müssen erkannt werden. Dafür wird eine eindeutige Event- oder Delivery-ID gespeichert. Ist sie bereits verarbeitet, bestätigt die Anwendung den Empfang, führt die geschäftliche Aktion aber nicht noch einmal aus. Diese kleine Vorsichtsmaßnahme verhindert doppelte E-Mails, Buchungen und Statuswechsel.
Auch die Reihenfolge darf nicht blind vorausgesetzt werden. Ein Ereignis über eine bezahlte Rechnung kann eintreffen, bevor die zuvor erzeugte Rechnung lokal bekannt ist. Robuste Systeme laden den aktuellen Zustand bei Bedarf über die API nach oder halten Ereignisse zurück, bis ihre Voraussetzungen erfüllt sind.
GitHub empfiehlt für Webhooks unter anderem kurze Antwortzeiten, eindeutige Zustellkennungen und die Möglichkeit, verpasste Übertragungen erneut zuzustellen. Stripe weist ausdrücklich darauf hin, dass Ereignisse doppelt und in abweichender Reihenfolge eintreffen können. Das sind keine exotischen Sonderfälle, sondern normale Eigenschaften verteilter Systeme.
HTTP-Statuscodes liefern eine erste Einordnung. Ein 401 deutet auf fehlende oder ungültige Anmeldung hin, ein 429 auf zu viele Anfragen und ein 500er-Code auf einen Fehler beim Anbieter. Für einen belastbaren Betrieb reicht es nicht, sämtliche Abweichungen als „Schnittstellenfehler“ zu protokollieren.
Die Anwendung sollte technische und fachliche Fehler trennen. Eine Versand-API kann technisch korrekt mit Status 200 antworten und im Inhalt melden, dass die Adresse nicht bedient wird. Umgekehrt kann ein Proxy eine Fehlerseite liefern, obwohl die Anwendung JSON erwartet. Beide Fälle benötigen unterschiedliche Reaktionen.
Wir protokollieren daher Statuscode, Dauer, Endpunkt, Vorgangskennung und eine bereinigte Fehlerklasse. Sensible Inhalte wie Zugangsdaten, personenbezogene Daten oder vollständige Zahlungsinformationen gehören nicht ungefiltert in Logs. Gute Diagnosefähigkeit darf kein neues Datenschutz- oder Sicherheitsproblem erzeugen.
Für Fachanwender braucht es verständliche Zustände. „cURL error 28“ hilft dem Kundenservice nicht. Ein interner Vorgang kann stattdessen als „Übertragung ausstehend“ markiert werden, mit Zeitpunkt, Anzahl der Versuche und einer Möglichkeit zur kontrollierten erneuten Verarbeitung.
Ein klassisches Servermonitoring meldet, dass die Anwendung erreichbar ist und ausreichend Speicher besitzt. Eine ausgefallene Schnittstelle kann dabei unbemerkt bleiben. Die Website antwortet weiterhin, nur neue Kontakte kommen nicht mehr im CRM an.
Technisches API-Monitoring erfasst Erreichbarkeit, Antwortzeiten und Fehlerraten. Für geschäftskritische Integrationen sollte zusätzlich geprüft werden, ob der komplette Ablauf funktioniert. Eine Testanfrage oder ein kontrollierter synthetischer Vorgang zeigt, ob Authentifizierung, Datenübertragung und Verarbeitung zusammenarbeiten.
Geschäftliche Kennzahlen ergänzen das technische Bild. Wenn normalerweise jede Stunde Bestellungen übertragen werden und seit sechs Stunden kein einziger Vorgang angekommen ist, sollte das auffallen, selbst wenn keine API einen Fehler gemeldet hat. Dasselbe gilt für ungewöhnlich große Warteschlangen oder stark steigende Wiederholungen.
Ein Alarm braucht eine verantwortliche Person und eine sinnvolle Priorität. Bei jeder kurzen Verzögerung nachts das gesamte Team zu benachrichtigen führt schnell dazu, dass Warnungen ignoriert werden. Kritische Zahlungen benötigen eine andere Reaktionszeit als eine vorübergehend fehlende Kartenansicht.
Viele Anbieter veröffentlichen eine Statusseite. Sie hilft bei der Einordnung größerer Störungen und gehört in die Dokumentation des Betriebs. Trotzdem sollte sich ein Unternehmen nicht ausschließlich darauf verlassen.
Statusseiten zeigen oft aggregierte Dienste. Ein einzelner Endpunkt, eine Region oder ein Kundenkonto kann gestört sein, während der Gesamtstatus grün bleibt. Zudem benötigt der Anbieter Zeit, ein Problem zu erkennen und öffentlich zu bestätigen.
Das eigene Monitoring misst die tatsächlich verwendete Funktion aus Sicht der eigenen Anwendung. Es beantwortet damit eine andere Frage. Beide Informationsquellen ergänzen sich. Bei einer Störung erleichtert die Statusseite die Kommunikation, während eigene Messwerte zeigen, welche Vorgänge konkret betroffen sind.
Für den Support ist eine zentrale Übersicht sinnvoll. Dort stehen Anbieterstatus, letzte erfolgreiche Übertragung, Anzahl offener Vorgänge und bekannte Ersatzwege. So muss nicht jeder Mitarbeiter in technischen Logs suchen.
Entwickler prüfen Benutzereingaben meist sorgfältig. Daten aus einer bekannten API werden dagegen gern als vertrauenswürdig behandelt. Das ist riskant. Auch ein seriöser Anbieter kann kompromittiert sein, fehlerhafte Inhalte liefern oder unerwartete Weiterleitungen senden.
OWASP führt die unsichere Nutzung fremder APIs als eigenes Risiko. Empfohlen werden verschlüsselte Verbindungen, Prüfung und Bereinigung empfangener Daten, begrenzte Ressourcen sowie ein kontrollierter Umgang mit Weiterleitungen. Besonders kritisch ist das blinde Folgen auf eine andere Zieladresse, wenn dabei sensible Daten erneut übertragen werden.
Antworten sollten daher gegen ein erwartetes Schema geprüft werden. Zahlen müssen Zahlen sein, Pflichtfelder vorhanden und Werte innerhalb plausibler Grenzen liegen. Unbekannte Felder dürfen nicht automatisch zu Datenbank- oder Objektoperationen führen.
Auch die Größe einer Antwort braucht eine Grenze. Ein unerwartet großes Dokument kann Speicher und Verarbeitung blockieren. Timeouts allein schützen davor nicht. Dateitypen, Datenmenge und Verarbeitungstiefe gehören ebenfalls in die Sicherheitsbetrachtung.
Manche Integrationen fallen nicht wegen eines technischen Defekts aus, sondern weil ein Zertifikat abläuft oder ein Token erneuert werden muss. Der Dienst funktioniert jahrelang und stoppt an einem feststehenden Datum. Trotzdem trifft die Störung das Team überraschend.
Zugangsdaten sollten zentral und sicher verwaltet werden. Ablaufdaten gehören ins Monitoring. Eine Erinnerung wenige Wochen vorher lässt genug Zeit für die Erneuerung und einen Test. Persönliche Benutzerkonten sind für dauerhafte Integrationen ungeeignet, weil sie bei Rollenwechseln oder Austritten deaktiviert werden.
Das Prinzip der geringsten Rechte gilt auch für APIs. Eine Schnittstelle, die nur Bestellstatus liest, benötigt keinen vollständigen Schreibzugriff auf Kunden und Zahlungen. Eng begrenzte Berechtigungen reduzieren den Schaden bei einem kompromittierten Schlüssel.
Ein regelmäßiger Schlüsselwechsel ist nur dann hilfreich, wenn der Prozess getestet ist. Werden neue Zugangsdaten manuell auf mehreren Servern verteilt, entstehen leicht Inkonsistenzen. Automatisierte Bereitstellung und eine kurze Überlappung alter und neuer Schlüssel machen den Wechsel sicherer.
Eine API ist kein unveränderlicher Vertrag. Anbieter ergänzen Felder, markieren Endpunkte als veraltet und stellen ältere Versionen ab. Gut geführte Dienste kündigen Änderungen frühzeitig an. Die eigene Anwendung muss diese Informationen trotzdem wahrnehmen und verarbeiten.
Kontaktdaten beim Anbieter sollten auf eine betreute Adresse zeigen, nicht auf das Postfach eines ehemaligen Entwicklers. Release Notes und Deprecation-Hinweise gehören in einen festen Prüfprozess. Bei wichtigen Diensten lohnt sich ein automatisierter Hinweis auf angekündigte Abschaltungen.
Vertragstests helfen, unbeabsichtigte Änderungen früh zu erkennen. Sie prüfen nicht nur, ob der Endpunkt antwortet, sondern ob die erwarteten Felder, Typen und Bedeutungen erhalten sind. Gegen eine Testumgebung des Anbieters können solche Prüfungen bereits vor einem Versionswechsel laufen.
Die eigene Integration sollte unbekannte zusätzliche Felder möglichst tolerieren. Bricht sie bei jeder Erweiterung des Antwortformats ab, ist sie unnötig empfindlich. Fehlende oder inhaltlich veränderte Pflichtangaben müssen dagegen klar erkannt werden.
Sandbox-Systeme sind für die Entwicklung unverzichtbar. Sie enthalten Testdaten, simulieren Zahlungen und ermöglichen gefahrlose Versuche. Ihre Verfügbarkeit, Limits und Antwortzeiten entsprechen aber nicht immer dem Produktivsystem.
Fehlerpfade müssen daher aktiv getestet werden. Die Verbindung wird unterbrochen, eine Antwort verzögert, ein Feld entfernt oder ein 429-Status erzeugt. Webhooks treffen doppelt und in falscher Reihenfolge ein. Erst unter diesen Bedingungen zeigt sich, ob die Anwendung kontrolliert reagiert.
Wir nutzen dafür nach Möglichkeit eine Zwischenschicht oder Test-Doubles, die definierte Fehler ausgeben. So lassen sich seltene Situationen reproduzieren, ohne auf eine echte Störung des Anbieters zu warten. Die Tests gehören in die automatisierte Qualitätssicherung.
Ein Test sollte auch die Oberfläche einschließen. Technisch kann ein Vorgang korrekt in einer Warteschlange landen, während der Nutzer eine irreführende Meldung erhält. Betriebssicherheit und Nutzerkommunikation müssen zusammenpassen.
Nicht jede externe Funktion ist für den Abschluss eines Vorgangs unverzichtbar. Eine Empfehlung, Kartenansicht oder Bonitätsinformation kann häufig vorübergehend entfallen. Die Anwendung sollte dann den Kernprozess fortsetzen und die Zusatzfunktion später nachholen.
Diese kontrollierte Einschränkung wird als Graceful Degradation bezeichnet. Sie wird bereits in der fachlichen Konzeption festgelegt. Das Team entscheidet, welche Dienste zwingend erforderlich sind, welche Daten zwischengespeichert werden dürfen und welche Information der Nutzer erhält.
Bei einer Adressvervollständigung kann ein normales Eingabeformular als Ersatz dienen. Fällt die CRM-Übertragung aus, wird die Anfrage lokal sicher gespeichert und später synchronisiert. Eine nicht verfügbare Produktbewertung muss den Kauf nicht blockieren.
Bei Zahlungen, Identitätsprüfungen oder verbindlichen Beständen sind die Grenzen enger. Hier darf die Anwendung keinen erfolgreichen Abschluss vortäuschen. Auch dann ist eine klare Zwischenmeldung besser als ein allgemeiner Fehler. Der Vorgang bleibt gespeichert und der Nutzer erfährt, wie es weitergeht.
Wenn ein Dienst nachweislich gestört ist, sind weitere Anfragen oft sinnlos. Sie verbrauchen Ressourcen, verlängern Wartezeiten und belasten den Anbieter zusätzlich. Ein Circuit Breaker unterbricht Aufrufe nach einer festgelegten Zahl von Fehlern vorübergehend.
Während dieser Zeit reagiert die Anwendung sofort mit dem vorgesehenen Ersatzverhalten. Nach einer Pause werden einzelne Testanfragen zugelassen. Funktionieren sie, öffnet sich der normale Pfad wieder. Bleiben sie fehlerhaft, bleibt die Sperre aktiv.
Das Muster ist besonders hilfreich, wenn viele Benutzer parallel denselben Fremddienst aufrufen. Ohne Schutz wartet jede Anfrage bis zum Timeout. Die eigene Anwendung wird langsam, obwohl ihre internen Komponenten gesund sind.
Grenzwerte dürfen nicht willkürlich gewählt werden. Ein einzelner fachlicher Fehler ist kein Dienstausfall. Gemessen werden sollten technische Fehler und Latenzen in einem sinnvollen Zeitfenster. Der Status des Circuit Breakers gehört ins Monitoring.
Eine direkte API-Anfrage verbindet die Laufzeit zweier Systeme. Der Benutzer wartet, bis beide Seiten fertig sind. Für Aufgaben, die nicht sofort abgeschlossen sein müssen, ist eine asynchrone Verarbeitung robuster.
Die eigene Anwendung speichert zunächst einen Auftrag in einer Warteschlange. Ein Hintergrundprozess überträgt ihn an den Fremddienst. Bei einem temporären Fehler bleibt der Auftrag erhalten und wird nach den festgelegten Regeln erneut versucht. Lastspitzen lassen sich so kontrolliert abarbeiten.
Eine Queue löst allerdings nicht alle Probleme. Nachrichten können doppelt verarbeitet werden, dauerhaft fehlerhaft sein oder an einer ungültigen Nachricht hängen. Deshalb braucht es eindeutige Kennungen, begrenzte Versuche und einen separaten Bereich für nicht verarbeitbare Nachrichten. Häufig wird dieser als Dead Letter Queue bezeichnet.
Fachanwender sollten problematische Vorgänge sehen und nach Korrektur erneut anstoßen können. Wenn eine Nachricht nur in einer technischen Warteschlange verschwindet, ist der Prozess zwar entkoppelt, aber nicht beherrscht.
Selbst bei zuverlässigen Webhooks und Wiederholungen können Systeme auseinanderlaufen. Ein manueller Eingriff beim Anbieter, ein übersehener Fehler oder eine längere Störung hinterlässt unterschiedliche Zustände. Deshalb ist ein periodischer Abgleich sinnvoll.
Die Anwendung vergleicht beispielsweise offene Zahlungen, Versandaufträge oder Kundendatensätze mit der Gegenstelle. Abweichungen werden automatisch korrigiert oder zur Prüfung markiert. Dieser Abgleich wird Reconciliation genannt.
Für die Buchhaltung ist das Prinzip vertraut. Konten werden nicht deshalb nie geprüft, weil jede einzelne Buchung technisch bestätigt wurde. Schnittstellen verdienen dieselbe Haltung. Automatische Übertragung reduziert Arbeit, ersetzt aber keine Kontrolle des Gesamtergebnisses.
Der Abgleich muss wirtschaftlich dimensioniert sein. Millionen Datensätze täglich vollständig zu vergleichen, belastet beide Systeme. Häufig reichen Zeitfenster, Prüfsummen, Änderungsstände und Stichproben, ergänzt um einen vollständigen Abgleich in größeren Abständen.
Für seltene Störungen ist ein dokumentierter manueller Prozess oft wirtschaftlicher als eine vollständig redundante Integration. Wichtig ist, dass er vor dem Ausfall definiert und ausprobiert wurde.
Ein Export kann vorübergehend als Datei übertragen, eine Bestellung im Anbieterportal nacherfasst oder eine Kundenanfrage lokal gesammelt werden. Dabei müssen Doppelverarbeitung, Datenschutz und spätere Synchronisation berücksichtigt werden.
Der Ersatzweg braucht klare Auslöser. Wer entscheidet, dass auf manuelle Verarbeitung umgestellt wird, und wann kehrt das Team zum Normalbetrieb zurück. Ohne Zuständigkeit arbeiten Abteilungen möglicherweise parallel über verschiedene Wege.
Nach der Störung werden manuelle und automatische Vorgänge abgeglichen. Sonst entstehen genau jene doppelten oder fehlenden Einträge, die der Ersatzprozess verhindern sollte.
Preis und Funktionsumfang sind bei API-Diensten leicht vergleichbar. Für den Betrieb zählen weitere Eigenschaften: dokumentierte Verfügbarkeit, transparente Limits, Versionierungsstrategie, Statusseite, Testumgebung und Möglichkeiten zur erneuten Zustellung.
Eine gute Dokumentation beschreibt Fehlerfälle, nicht nur erfolgreiche Beispiele. Sie erklärt Statuscodes, Timeouts, Wiederholungen und die Lebensdauer von Ereignissen. Änderungsprotokolle und verbindliche Vorlaufzeiten bei Abschaltungen erleichtern die Wartung.
Bei geschäftskritischen Diensten gehören Support und Eskalationswege in die Auswahl. Ein öffentliches Kontaktformular reicht nicht, wenn der Verkauf stillsteht. Service-Level-Vereinbarungen sind nur nützlich, wenn Messmethode, Reaktionszeit und betroffene Funktionen klar beschrieben sind.
Auch ein guter Anbieter kann ausfallen. Die Auswahl reduziert Risiken, ersetzt aber keine robuste Integration. Wer sämtliche Verantwortung an den Dienstleister delegiert, erfährt im Störungsfall trotzdem den eigenen wirtschaftlichen Schaden.
In gewachsenen Anwendungen weiß häufig niemand mehr, welche externen Dienste an welchem Prozess beteiligt sind. Eine alte Erweiterung ruft noch einen Geodienst auf, ein Formular sendet Kontakte an ein CRM und ein nächtlicher Job überträgt Bestände. Zugangsdaten und Ansprechpartner liegen an verschiedenen Stellen.
Ein schlankes API-Inventar schafft Übersicht. Es enthält Anbieter, Zweck, verantwortliche Person, betroffenen Geschäftsprozess, Zugangsdaten-Verwaltung, Version, Limits, Statusseite und vereinbartes Ersatzverhalten. Hinzu kommen letzte Prüfung und geplantes Ende einer alten Schnittstelle.
Das Inventar sollte mit dem Monitoring verbunden sein. Eine Liste, die niemand aktualisiert, veraltet schnell. Neue Integrationen werden im Entwicklungsprozess ergänzt, entfernte Dienste sauber ausgetragen und nicht mehr benötigte Schlüssel widerrufen.
Diese Übersicht hilft auch bei Sicherheitsvorfällen und Vertragsänderungen. Das Unternehmen erkennt schnell, welche Anwendungen betroffen sind und wer Entscheidungen treffen kann.
Vor dem produktiven Start einer wichtigen Integration prüfen wir nicht nur den Erfolgsfall. Die Gegenstelle wird verlangsamt, vollständig abgeschaltet und mit unerwarteten Antworten simuliert. Wiederholungen, Limits und doppelte Ereignisse gehören ebenfalls in den Test.
Der Fachprozess wird dabei mit betrachtet. Ein fehlgeschlagener Versandauftrag muss im System sichtbar bleiben. Eine unklare Zahlung darf weder als sicher erfolgreich noch als sicher abgelehnt erscheinen. Nutzer und Support benötigen verständliche Informationen.
Danach werden Monitoring und Alarmierung getestet. Eine Warnung, die theoretisch konfiguriert ist, aber nie bei der zuständigen Person ankommt, schützt den Betrieb nicht. Auch die Rückkehr aus einer Störung muss funktionieren, ohne dass alte Vorgänge verloren gehen.
Schließlich dokumentieren wir den manuellen Ersatzweg und die Wiederaufnahme. Diese Arbeit wirkt beim ersten Go-live aufwendiger als ein einfacher API-Aufruf. Sie spart jedoch genau dann Zeit, wenn mehrere Abteilungen unter Druck eine widersprüchliche Datenlage klären müssten.
Externe APIs sind ein sinnvoller Bestandteil moderner Webanwendungen. Sie ermöglichen spezialisierte Funktionen, beschleunigen Projekte und verbinden vorhandene Systeme. Ihre Zuverlässigkeit darf trotzdem nicht mit der Zuverlässigkeit des eigenen Gesamtprozesses verwechselt werden.
Eine belastbare Integration setzt Timeouts, unterscheidet Fehlerklassen und wiederholt nur Aktionen, die sicher erneut ausgeführt werden können. Webhooks werden auf Duplikate und Reihenfolge geprüft, Antworten validiert und kritische Vorgänge regelmäßig abgeglichen.
Monitoring muss sichtbar machen, ob Daten fachlich ankommen. Warteschlangen, Circuit Breaker und kontrollierte Ersatzfunktionen verhindern, dass eine einzelne langsame Gegenstelle die gesamte Anwendung blockiert. Für seltene Störungen kann ein gut vorbereiteter manueller Weg die wirtschaftlich beste Absicherung sein.
Aus unserer Erfahrung ist nicht die Anzahl externer Schnittstellen das größte Risiko. Gefährlich sind Integrationen, deren Ausfall niemand bemerkt und für die kein definierter Zustand zwischen Erfolg und Fehler existiert. Wer diese Zwischenfälle von Anfang an mitplant, behält auch dann die Kontrolle, wenn ein fremdes System vorübergehend nicht mitspielt.