Categories
Blog

Datenaustausch über Messaging-Systeme

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

Categories
Blog

Fehlertoleranz, eines von vielen entscheidenden Vorteilen von Kafka

Stell dir mal vor, du hast deine Anwendungen und Systeme miteinander verbunden und jetzt fällt eines oder mehrere dieser Systeme aus, was ist die Folge?

Es scheint trivial, aber eines der grundlegendsten Elemente ist die Sicherstellung und Ausfallsicherheit des Datentransports und der Übertragung von einem System in ein anderes.

In der Regel liegen nicht alle Systeme oder Anwendungen in deiner Hand oder unter deiner Kontrolle. In jedem System kann es passieren, dass Probleme auftreten, die Systeme ausfallen oder ein System gewartet wird, wodurch die Systeme nicht mehr erreichbar sind.

Diese Probleme treten in der Regel plötzlich und ohne Mitteilung des System-Anbieters auf.

Das kann unter anderem zufolge haben:

  • Die Bestellung kommt nicht in deinem ERP oder den Logistik- und Dispositionssystemen an. Dadurch kann die Bestellung nicht, wie vereinbart, ausgeliefert werden.
  • Deine Kund:innen können nicht bestellen, weil die Bestellsysteme nicht die richtigen Informationen bereitstellen oder im schlimmsten Fall sogar ausfallen.

Das sind nur zwei Beispiele von vielen möglichen Szenarien, die zu Unzufriedenheiten der Kund:innen führen können oder unnötige Aufwände für den Vertrieb oder das Service-Team zur Folge haben und im schlimmsten Fall sogar in Umsatzverlust resultieren. 

Daher ist es ausschlaggebend, wenn Anwendungen miteinander verbunden sind, dass die Daten in den Zielsystemen ankommen.

Eines von vielen Vorteilen von Kafka und Event-Streams ist die hohe Verfügbarkeit und Fehlertoleranz.

Was bedeutet das?

Kafka speichert sich, Daten und Events, bis zu einem von dir konfigurierbaren Zeitraum.

Selbst wenn etwas schiefgeht, wie Netzwerkprobleme oder Anwendungs- und Systemausfälle, weiß Kafka automatisch, an welcher Stelle die Daten gelesen und weiterverarbeitet werden müssen, sobald die Systeme wieder verfügbar sind.

Hinzukommend können deine Anwendungen und Systeme gewartet werden, ohne, dass Daten verloren gehen.

Wenn die Systeme wieder hochfahren und online sind, werden die Daten automatisch genau an dem Punkt abgeholt, an dem das System ausgefallen ist.

In einem modernen Datenmanagement übernimmt Kafka über Event-Streams die Sicherstellung des Datentransports und der Übertragung für dich.

Du brauchst dir also keine Gedanken darüber machen, ob die Daten in den Zielsystemen ankommen, sondern kannst dich uneingeschränkt auf deine Kund:innen konzentrieren.

Categories
Glossary

Was sind Event-Streams?

Der Begriff “Event” bezieht sich auf ein Ereignis (Event) in Datenquellen wie Datenbanken, mobilen Geräten, Cloud-Diensten und Softwareanwendungen. “Stream” hingegen ist die fortlaufende Übertragung dieser Ereignisse.

Häufig werden Event-Streams oder eine Reihe von Ereignissen auch als “Daten-Streams” bezeichnet.

Ein Event kann jede Aktion in Datenquellen oder Anwendungen sein. Zum Beispiel, wenn ein Produkt in den Warenkorb gelegt, ein Kaufprozess abgeschlossen oder Produkte angeschaut wird. Das sind meist direkte Aktionen einer Person. Externe Anwendung wiederum können aber auch Daten direkt in eine Datenbank schreiben oder über eine API übertragen und darüber ein Event auslösen, ohne, dass eine Aktion einer Person stattfinden muss.

Andere Anwendungen oder Systeme können nun auf diese Events hören oder sie abonnieren und reagieren, sobald diese ausgeführt wurden.

Mit den Events aus einem Stream können anschließend Aktionen ausgeführt werden, wie bspw. Analysen, Umwandlungen, Anreicherung und Aufnahme.

Event-Streams gewährleisten somit einen kontinuierlichen Datenfluss, damit die richtigen Informationen zur richtigen Zeit am richtigen Ort sind.

Consent Management Platform by Real Cookie Banner