Event-Driven Architecture
Ein Architekturansatz, der auf der Erzeugung und Verarbeitung von Ereignissen basiert, um Systeme zu entkoppeln und reaktionsfähig zu gestalten.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Ereignisverlust bei Systemausfällen
- Schwierigkeiten bei der Nachverfolgbarkeit von Ereignissen
- Komplexität bei der Integration von Komponenten
- Ereignisse klar definieren und dokumentieren
- Skalierbare Infrastruktur verwenden
- Regelmäßige Überprüfung der Ereignisverarbeitung
I/O & Ressourcen
- Ereignisse von Benutzern oder Systemen
- Konfigurationseinstellungen für die Ereignisverarbeitung
- Datenquellen für Ereignisse
- Verarbeitete Ereignisse
- Benachrichtigungen oder Alarme
- Analytische Berichte
Beschreibung
Event-Driven Architecture (EDA) ist ein Architekturansatz, der sich auf die Erzeugung, Übertragung und Verarbeitung von Ereignissen konzentriert. In EDA-Systemen kommunizieren Komponenten über Ereignisse, die von einem Ereignis-Emitter erzeugt und von einem oder mehreren Ereignis-Handlern verarbeitet werden. Dieser Ansatz fördert die Entkopplung von Komponenten und ermöglicht eine reaktionsfähige, skalierbare und flexible Systemarchitektur.
✔Vorteile
- Erhöhte Flexibilität und Anpassungsfähigkeit
- Bessere Skalierbarkeit
- Schnellere Reaktionszeiten
✖Limitationen
- Komplexität in der Fehlerbehandlung
- Höhere Anforderungen an die Systemarchitektur
- Potenzielle Probleme mit der Konsistenz
Trade-offs
Metriken
- Reaktionszeit
Die Zeit, die benötigt wird, um auf ein Ereignis zu reagieren.
- Durchsatz
Die Anzahl der verarbeiteten Ereignisse pro Zeiteinheit.
- Fehlerquote
Der Prozentsatz der fehlerhaften Ereignisse.
Beispiele & Implementierungen
E-Commerce-Bestellsystem
Ein E-Commerce-System, das Bestellungen über Ereignisse verarbeitet, um eine reaktionsschnelle Benutzererfahrung zu gewährleisten.
Finanztransaktionsverarbeitung
Ein System, das Finanztransaktionen in Echtzeit verarbeitet und Ereignisse zur Aktualisierung von Kontoständen verwendet.
Soziale Medien Benachrichtigungssystem
Ein Benachrichtigungssystem, das Ereignisse verwendet, um Benutzer über neue Interaktionen zu informieren.
Implementierungsschritte
Ereignisverarbeitungssystem entwerfen
Ereignisquellen integrieren
Überwachung und Wartung einrichten
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Dokumentation von Ereignissen
- Veraltete Ereignisverarbeitungslogik
- Mangelnde Tests für Ereignisverarbeitung
Bekannte Engpässe
Beispiele für Missbrauch
- Ereignisse ignorieren, die für die Verarbeitung wichtig sind
- Ereignisse nicht ordnungsgemäß validieren
- Ereignisse nicht in der richtigen Reihenfolge verarbeiten
Typische Fallen
- Annahme, dass alle Ereignisse gleich wichtig sind
- Übersehen von Fehlern in der Ereignisverarbeitung
- Unterschätzen der Komplexität der Systemintegration
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Ereignisverarbeitung muss zuverlässig sein
- • Ereignisse müssen in der richtigen Reihenfolge verarbeitet werden
- • Systeme müssen skalierbar sein