Transparenz durch Event-basierte Systeme by inits. 06. Februar 2023

Transparenz durch Event-basierte Systeme

Der Begriff „Event-basiertes System“ beschreibt eine Software-Architektur, bei der – im Gegensatz zu traditionellen Konzepten – Ereignisse (Events) den Ablauf von Programmen bestimmen. Hierbei sprechen wir auch von einer sogenannten EDA – eine „Event Driven Architecture“.

Traditionelle Systeme werden grundsätzlich durch synchrone Anfragen gesteuert. Die moderne Event-basierte Architektur erlaubt es uns, auf Basis individueller Ereignisse, Prozesse auszulösen. Aber ab wann gilt ein Ereignis eigentlich als solches? Grundsätzlich sind alle Statusänderungen Ereignisse als Events zu betrachten. Zwei simple Beispiele: Jemand legt ein Produkt in den Warenkorb eines Onlineshops oder in einem Warenwirtschaftssystem wird eine Auftragsbestätigung erstellt und an den Kunden versandt.

Ein weiteres gutes Beispiel für ein großes event-basiertes System lässt sich im Wertpapierhandel finden. Täglich durchlaufen zahlreiche Ereignisse wie zum Beispiel die Prüfung einer Transaktion (Ereignis: Pre Trade Compliance verified), Statusänderungen (Ereignis: Trade executed) oder auch externe Informationen, wie bspw. Marktdaten (Event: Price updated), die Systeme unserer Auftraggeber. Diese Ereignisse können sowohl in Anzahl als auch von der Häufigkeit stark variieren, was zu sehr unterschiedlichen Performanceanforderungen führen kann. Hier spielen wir mit Event-basierten Systemen alle Vorteile aus:

  • Asynchron: Ein Event-basiertes System ermöglicht es, dass die Komponenten unabhängig voneinander arbeiten und sich gegenseitig nicht blockieren.
  • Skalierbar: Ein Event-basiertes System kann leicht skaliert werden, indem man mehr Instanzen einer Komponente hinzufügt, um die Verarbeitungskapazität zu erhöhen.
  • Flexibel: Ein Event-basiertes System ermöglicht es, dass sich Komponenten leicht an veränderte Anforderungen anpassen lassen, da sie nicht strikt miteinander verknüpft sind.
  • Fehlertolerant: Ein Event-basiertes System kann so konstruiert werden, dass es fehlertolerant ist, indem man beispielsweise mehrere Instanzen einer Komponente verwendet und die Verarbeitung von Events auf mehrere Instanzen verteilt.
  • Nachvollziehbar: Durch lückenlose Logfiles ist genau nachvollziehbar, wer wann was geändert hat.
  • Schnell: Alle Daten können in Echtzeit im System verarbeitet werden. Durch ereignisgesteuerte Kommunikation zwischen unseren Komponenten, verhindern wir synchrone Funktionsaufrufe und ermöglichen somit eine Echtzeit-Verarbeitung.

Du möchtest mehr dazu erfahren? Schau’ doch einmal rein unter www.inits.io oder schreib’ uns eine Nachricht!