Message Queue
Ein Kommunikationsmuster, bei dem Nachrichten in einer Warteschlange zwischengespeichert werden – ermöglicht asynchrone, entkoppelte Kommunikation zwischen Services.
Ein Architekturmuster, bei dem Komponenten über Ereignisse (Events) kommunizieren statt über direkte Aufrufe – ideal für lose Kopplung, Skalierbarkeit und Echtzeit-Datenverarbeitung in KI-Systemen.
In einer Event-Driven Architecture kommunizieren Systemkomponenten über Ereignisse (Events). Ein Event sagt: „Etwas ist passiert” – und alle interessierten Services können darauf reagieren.
Drei Kernkomponenten:
┌──────────┐ Event ┌─────────┐ Event ┌──────────┐
│ Producer │ ──────────▶ │ Broker │ ──────────▶ │ Consumer │
│ (Sensor) │ │ (Kafka) │ │ (ML-Modell)│
└──────────┘ └─────────┘ └──────────┘
│
▼
┌──────────┐
│ Consumer │
│(Dashboard)│
└──────────┘
| Pattern | Einsatz |
|---|---|
| Event Sourcing | Vollständige Historie aller Datenänderungen für Model-Retraining |
| CQRS | Getrennte Lese-/Schreibmodelle für schnelle Inferenz |
| Streaming Inference | Modell verarbeitet Events in Echtzeit |
| Fan-out | Ein Event triggert mehrere ML-Pipelines gleichzeitig |
| Aspekt | REST (Sync) | Event-Driven (Async) |
|---|---|---|
| Kopplung | Eng | Lose |
| Latenz | Request wartet | Fire-and-Forget |
| Skalierung | Vertikal | Horizontal |
| Debugging | Einfach | Komplex |
| Ideal für | CRUD-APIs | Streaming, ML-Pipelines |
Event-Driven Architecture ist wie ein Nachrichtenbrett im Büro: Jeder hängt relevante Neuigkeiten ans Brett, und wer sich dafür interessiert, liest sie – niemand muss wissen, wer die Nachricht lesen wird.
Komponenten kommunizieren über Events statt direkte API-Aufrufe
Ermöglicht lose Kopplung, Skalierbarkeit und Echtzeit-Reaktionen
Zentral für ML-Pipelines, Feature Stores und Streaming-Inferenz
Echtzeit-ML-Inferenz
Modelle reagieren sofort auf neue Daten-Events (z. B. Betrugserkennung bei Transaktionen)
Feature Store Updates
Features werden bei jedem neuen Event automatisch neu berechnet
Model Monitoring
Drift-Detection und Alert-Systeme als Reaktion auf Vorhersage-Events
Wenn du lose Kopplung, Echtzeit-Verarbeitung oder Skalierbarkeit brauchst. REST ist besser für einfache Request-Response-Szenarien. Event-Driven eignet sich für asynchrone Workflows, bei denen mehrere Services auf dieselben Daten reagieren müssen.
Events beschreiben, was passiert ist ('Bestellung aufgegeben'). Messages sind Anweisungen ('Verarbeite Bestellung'). Events sind informierend, Messages sind auffordernd. In der Praxis verschwimmt die Grenze oft.
Event-Ordering (Reihenfolge garantieren), Idempotenz (doppelte Events abfangen), Debugging (verteilte Traces nachverfolgen) und Eventual Consistency (Daten sind nicht sofort überall konsistent).