Event Streaming
Architekturparadigma zur kontinuierlichen Übertragung und Verarbeitung von Ereignissen als Datenströme.
Klassifikation
- KomplexitätHoch
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Datenverlust bei falscher Konfiguration
- Eventual Consistency führt zu komplexeren Fehlerfällen
- Fehlende Governance kann zu Wildwuchs führen
- Ereignis-Schemas zentral verwalten (Schema Registry)
- Idempotente Konsumenten implementieren
- Retention-/Archiving-Strategien festlegen
I/O & Ressourcen
- Quellsysteme, die Ereignisse erzeugen (APIs, DB-CDC)
- Event-Schema und Versionierungsregeln
- Infrastruktur für Broker und Speicher
- Konsumenten-Streams für Anwendungen und Analysen
- Persistente Ereignis-Logs für Audits
- Monitoring-Metriken und SLAs
Beschreibung
Event Streaming beschreibt die kontinuierliche Erzeugung, Übertragung und Verarbeitung von Ereignissen in Form von zeitlich geordneten Datenströmen. Es ermöglicht skalierbare, lose gekoppelte Architekturen für Echtzeit-Analysen, Integrationen und Asynchronität. Typische Plattformen sind Apache Kafka und CloudEvents-konforme Infrastrukturen. Sie reduziert Latenz und vereinfacht Datenflüsse zwischen Diensten.
✔Vorteile
- Skalierbarkeit bei hohem Durchsatz
- Geringere Latenz für Echtzeit-Use-Cases
- Bessere Entkopplung von Diensten
✖Limitationen
- Komplexität in Betrieb und Fehlersuche
- Erfordert geeignetes Monitoring und Observability
- Schema- und Versionierungsmanagement notwendig
Trade-offs
Metriken
- End-to-End-Latenz
Zeit vom Erzeugen bis zur Verarbeitung eines Ereignisses.
- Durchsatz (Events/s)
Anzahl verarbeiteter Ereignisse pro Sekunde.
- Fehlerrate / verlorene Ereignisse
Anteil nicht zugestellter oder verlorener Nachrichten.
Beispiele & Implementierungen
Apache Kafka als Backbone
Verwendung von Kafka für hohe Durchsatzraten und persistente Logs in verteilten Systemen.
CloudEvents für Interoperabilität
Standardisiertes Ereignisformat für plattformübergreifende Integration und Routing.
Stream-Processing mit Apache Flink
Stateful Stream-Processing für komplexe Aggregationen und Fensterfunktionen.
Implementierungsschritte
Anforderungen und SLAs für Latenz und Durchsatz definieren
Passende Broker- und Storage-Architektur auswählen
Event-Schemata und Governance-Richtlinien einführen
Consumer-Topologien und Repartitionierungsstrategie planen
Observability, Backpressure und Fehlertoleranz testen
⚠️ Technische Schulden & Engpässe
Tech Debt
- Ad-hoc Topics ohne Governance
- Veraltete Schemata ohne Migrationspfad
- Fehlende automatisierte Tests für Konsumenten
Bekannte Engpässe
Beispiele für Missbrauch
- Ereignisse mit zu großem Payload als Standard nutzen
- Nur kurze Retention ohne Archivierung für Compliance
- Fehlende Quell-Konsumenten-Isolation führt zu Seiteneffekten
Typische Fallen
- Unterschätzung der Observability-Anforderungen
- Nicht berücksichtigte Daten-Schema-Änderungen
- Ungenügende Planung von Partitionierungsstrategien
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Begrenzter Speicher für Retention
- • Netzwerk-Latenz zwischen Regionen
- • Compliance-Anforderungen für Ereignisdaten