Ein Event Stream ist ein geordneter, persistenter Datenstrom von Ereignissen. Anders als bei einer Message Queue werden Ereignisse nicht nach der Zustellung verworfen, sondern als append-only Log aufbewahrt — neue Konsumenten können den Strom von Beginn an lesen (Replay).
Eigenschaften eines Event Streams
- Persistenz: Ereignisse werden dauerhaft gespeichert, nicht nach Konsum gelöscht.
- Ordnung: Innerhalb einer Partition bleibt die Reihenfolge der Ereignisse erhalten.
- Replay: Jeder Konsument liest den Strom mit eigenem Offset und kann jederzeit von vorn beginnen.
- Fan-out: Beliebig viele unabhängige Konsumentengruppen lesen denselben Strom.
Beispiele und Einordnung
Apache Kafka (über seine Log-basierte Architektur) und Kinesis sind typische Event-Stream-Systeme — siehe auch Kafka-Befehle. Der Unterschied zum Event Bus: Ein Bus verteilt Ereignisse an Abonnenten, ohne sie dauerhaft zu speichern; ein Stream ist selbst das Speichermedium. Change Data Capture erzeugt Event Streams aus Datenbankänderungen, und Event Sourcing macht den Ereignisstrom zur Quelle der Wahrheit eines Systems.
Typische Anwendungen
- Echtzeit-Analysen und Metriken
- Replikation zwischen Systemen
- Wiederherstellung von Zuständen durch Replay (Event Sourcing)
Verwandte Grundlagen: Message Broker, Eventual Consistency.