Die Systemlandschaft wird zunehmend komplexer. Längst werden Arbeitsprozesse digital in vielen unterschiedlichen Systemen bearbeitet. Eine Entwicklung weg von den monolithischen ERP-Giganten, welche versuchen, alle Prozesse in einem geschlossenen System abzubilden, hin zu agilen Satellitensystemen, die jeweils auf den entsprechenden Anwendungsfall spezialisiert sind – diese Herangehensweise wird auch „Best of Breed“ genannt. Damit solch eine moderne Infrastruktur funktioniert, muss die Kommunikation und der Austausch von Daten zwischen den Systemen reibungslos funktionieren. Dabei stoßen die Systeme, bzw. die Art der Kommunikation zwischen den Systemen immer wieder auf die gleichen Herausforderungen:
Genau wie in einer Lieferkette gibt es einen Produzenten, welcher die Ware aussendet und einen Konsumenten am Ende der Kette, der die Ware entsprechend empfangen soll.
Herausforderung 1: Auslieferung nicht möglich
Stellt man sich den Austausch der Daten vor wie eine Lieferkette, so kann es zum Beispiel vorkommen, dass ein System, welches Daten empfangen und konsumieren soll, aufgrund von Wartungsarbeiten oder einem temporären Ausfall nicht zu erreichen ist.
Das produzierende System kann die Daten nicht erfolgreich ausliefern und stößt schnell an die eigenen Kapazitäten, bevor das empfangende System wieder verfügbar ist.
Herausforderung 2: Zu kleines Lager
Eine besondere Herausforderung in einer nicht aufeinander abgestimmten Lieferkette ist bspw., wenn das sendende System, die Kapazitäten des Empfängers nicht kennt oder ignoriert. Stell dir vor, ein Lager mit sehr kleiner Kapazität würde unaufhörlich LKW Ladungen neuer Ware geliefert bekommen. Das Lager wäre in kürzester Zeit überfordert und nicht mehr in der Lage, Prozesse einzuhalten. Das Gleiche gilt für ein empfangendes System, welches mit Daten überhäuft wird – das System ist technisch nicht in der Lage eine zu große Datenflut zu verarbeiten und stürzt ab (DoS).
Herausforderung 3: Auslieferung ohne Lieferschein
Eine weitere potenzielle Fehlerquelle bei der Auslieferung von Daten, ist, wenn die Auslieferung nicht entsprechend als angenommen quittiert wird, ähnlich wie eine Auslieferung ohne bestätigten Lieferschein. Das empfangende System beginnt mit der Annahme der Daten und stürzt plötzlich ab. Das sendende System geht davon aus, dass alles entsprechend verarbeitet wurde, obwohl dies nicht der Fall ist.
Diese und andere Herausforderungen haben oft Fehler zufolge, welche sowohl in einer Lieferkette, als auch im Austausch von Daten, Unzufriedenheit, Unordnung und ggf. verlorenen Umsatz bedeuten. Um diese Probleme zu lösen, setzt man Messaging-Systeme, wie z.B. Apache Kafka ein, die zwischen Sender und Empfänger platziert werden.
Diese könnte man in der Analogie zur Lieferkette mit einer Auftragsverarbeitung vergleichen, die überwacht und gemanaged wird. Jeder Auftrag ist eine Message / Nachricht, die vom Sender in das Messaging-System geschrieben wird.
Ist ein Messaging-System nicht nur ein weiteres System in der „Lieferkette“ und warum sollten dort nicht die gleichen Herausforderungen auftauchen?
Ja, es ist ein weiteres Glied in der Kette, jedoch um genau diese Herausforderungen gezielt anzugehen.
Das Messaging-System kann ggü. anderen Drittsystemen vom Unternehmen selbst oder einem Dienstleister gemanagt werden. Diese Kontrolle hat ein Unternehmen selten über alle seine Systeme, da diese oft als Software as a Service betrieben werden oder die Daten direkt in Systeme anderer Unternehmen fließen (z.B. Marktplatzanbindungen oder ERP-Systeme). So kann sichergestellt werden, dass die Kapazitäten auf die eigenen Anforderungen und Datenlast angepasst werden.
Ein Messaging-System ist durch Redundanzen so aufgestellt, dass es als besonders ausfallsicher gilt. Die einzige Aufgabe des Systems ist der Austausch von Daten. Sollte eine Komponente ausfallen, übernimmt sofort eine andere identische, um sicherzustellen, dass keine Information verloren gehen kann.
Ein entscheidender Unterschied ist außerdem, dass diese Nachrichten von den empfangenden Systemen abgeholt werden müssen, und somit sichergestellt wird, dass auch alles korrekt in Empfang genommen wurde.
Damit bietet ein Messaging-System wie Kafka entscheidende Vorteile ggü. einem direkten Datenaustausch über REST-API. Zudem können die eingesetzten Event-Streams, schnell und einfach für weitere Systeme verwendet werden, um Daten in Echtzeit zwischen sämtlichen Systemen zu synchronisieren.
Wenn du mehr über Kafka und Event-Streaming erfahren möchtest:
Was ist Kafka