Ein Event Bus (Ereignisbus) ist eine Vermittlungsinstanz in ereignisgetriebenen Systemen, über die Komponenten Ereignisse veröffentlichen und abonnieren, ohne einander direkt zu kennen. Er ist die praktische Umsetzung des Publish-Subscribe-Musters.
So funktioniert ein Event Bus
Eine Komponente veröffentlicht ein Ereignis (z. B. „Auftrag erstellt“) auf dem Bus. Alle interessierten Komponenten, die dieses Ereignis abonniert haben, werden benachrichtigt — der Absender weiß nicht, wer zuhört, und die Empfänger wissen nicht, wer gesendet hat. Dadurch entsteht eine lose Kopplung: Komponenten können hinzukommen oder wegfallen, ohne dass andere angepasst werden müssen.
Ereignisbus vs. Message Queue
Der Unterschied zur Message Queue liegt in der Zustellung: Ein Bus kopiert ein Ereignis an alle Abonnenten (Fan-out), während eine Queue jede Nachricht genau einem Konsumenten aus einer Konkurrenzgruppe zuteilt. Ein Event Stream wiederum legt Ereignisse als persistentes Log ab statt sie nach der Zustellung zu verwerfen. Ein Message Broker wie RabbitMQ oder Apache Kafka kann je nach Konfiguration beide Rollen übernehmen.
Praxis-Beispiele
- Event-Bus-Bibliotheken im Frontend (z. B. Vue.js EventBus, mittlerweile oft durch Composables ersetzt)
- Domain Events in der Event-Sourcing-Architektur
- Integration zwischen Microservices über einen zentralen Broker
Verwandte Grundlagen: Message Passing, Queue.