Integrationen scheitern selten an der Programmiersprache. Sie scheitern an unklaren Verantwortlichkeiten, fehlenden Fehlerpfaden und Annahmen über Datenqualität, die nie überprüft wurden.
Typische Ausgangslagen
- Zwei Systeme sollen Daten austauschen, die unterschiedliche Vorstellungen davon haben, was ein Datensatz ist.
- Eine gewachsene Schnittstelle funktioniert, aber niemand kann sagen, was bei einem Ausfall passiert.
- Ein Bestandssystem soll abgelöst werden, während der Betrieb weiterläuft.
- Ein Export läuft nachts durch, und niemand bemerkt, wenn er es nicht tut.
Technische Aufgaben
- Schnittstellen zwischen Bestandssystemen entwerfen, umsetzen und betreiben
- Datenübernahmen und Migrationen wiederholbar und überprüfbar machen
- Fehler-, Wiederholungs- und Abbruchverhalten explizit definieren
- Verantwortungsgrenzen zwischen Systemen dokumentieren
- Fachanwendungen entwickeln, die vorhandene Systeme ergänzen statt sie zu duplizieren
Vorgehen
Am Anfang steht nicht das Datenformat, sondern die Frage nach dem Besitzer: Welches System ist die führende Quelle für welche Information? Erst wenn das geklärt ist, wird über Protokolle und Formate entschieden.
Anschließend wird das Fehlerverhalten festgelegt – vor der ersten Zeile Code. Ein Import, der bei fehlerhaften Datensätzen abbricht, ist eine bewusste Entscheidung. Einer, der sie überspringt und niemanden informiert, ist ein späterer Vorfall.
Systemkontext
Integrationen berühren fast immer Identität und Berechtigungen. Wer darf welche Daten sehen, und woher weiß das Zielsystem davon? Diese Frage führt regelmäßig zu Identity & Access Management – und sollte nicht erst am Ende gestellt werden.