Die ereignisgesteuerte Architektur (auch Event-driven Architecture) steuert den Programmablauf durch Ereignisse. Nach dem Ausführen einer Funktion produzieren die Komponenten ein Ereignis. Gleichzeitig können Komponenten dieses Ereignis konsumieren und dadurch weitere Funktionen aufrufen, welche wiederum Ereignisse erzeugen. Dadurch dass die Produzenten nicht wissen, welche Konsumenten auf die Ereignisse hören, entsteht eine lose Kopplung, was die Wartbarkeit und Skalierbarkeit des Anwendungssystems steigert. Ein weitere Vorteil der ereignisgesteuerten Architektur ist die Möglichkeit der Echtzeitauswertung der Event.
Ein Ereignis kann sowohl ein Vorkommnis als auch eine Statusänderung des Systems sein. Beispiele hierfür sind interne oder externe Eingaben oder Änderungen an Entitäten bzw. Bestandteilen des Systems. Sie sind vergleichbar mit Ereignissen der ereignisgesteuerten Prozesskette. Daher bietet es sich an den Prozess zunächst mittels EPK zu modellieren.
Für die Verteilung der Ereignisse zwischen Komponenten wird eine Event Streaming Plattform benötigt. Eine weit verbreitete Lösung hierfür bietet Apache Kafka.
Ereignisgesteuerte Architektur am Beispiel
Bevor man ein Prozess mit einer ereignisgesteuerten Architektur umsetzt, sollte man diesen modellieren. Dafür ist es hilfreich, eine EPK zu erstellen.