Events feuern ist einfach. Dass sie ankommen, nicht.
Event-Driven Architecture in PHP manuell aufzusetzen bedeutet Event-Klassen schreiben, Listener registrieren, Queue-Integration verwalten und hoffen, dass das Schema nicht driftet. Jardis erzeugt typisierte Domain Events mit automatischem Queue Publishing für jeden Bounded Context.
Event-Driven Architecture in PHP scheitert nicht am Konzept.
Es scheitert daran, dass niemand die Infrastruktur konsequent und konsistent aufbaut.
Event-Schema driftet mit der Zeit
Ein Event wird erweitert, aber die Consumer wissen es nicht. Felder werden umbenannt, entfernt oder umsortiert. Kein zentrales Schema, kein Vertrag. Nach einem Jahr ist das Event-Format in Produktion eine andere Sprache als im Code.
Listener sind unsichtbar verdrahtet
Wer hört auf welches Event? Das steht irgendwo in einer Service-Provider-Registrierung, verteilt über mehrere Dateien. Neue Entwickler folgen dem Datenfluss nicht. Side Effects passieren unerwartet, weil niemand alle Listener kennt.
Queue-Integration ist manuelle Arbeit
Jedes Domain Event, das asynchron verarbeitet werden soll, braucht separate Konfiguration: Queue-Connection, Job-Klasse, Retry-Logik, Serialisierung. Wiederkehrende Infrastruktur-Arbeit die in jedem PHP-Projekt gleich aussieht und trotzdem jedes Mal von Hand passiert.
Domain Events als First-Class Citizens in PHP.
Jardis erzeugt Event-Driven Architecture PHP auf Domain-Ebene: typisierte Events, automatisches Queue Publishing, keine manuelle Registrierung.
Typisierte Events direkt aus dem Domain-Modell
Jardis erzeugt für jeden Bounded Context typisierte PHP-Klassen für Domain Events. Nicht als generische Arrays, sondern als versionierte, stark typisierte Objekte mit eigenem Namespace. Das Event-Schema ist Teil des erzeugten Codes, kein externes Dokument das veraltet.
Event-Driven Architecture PHP ohne Konfigurationsaufwand
Erzeugte Domain Events bringen automatisches Queue Publishing mit. Kein separates Job-Setup, keine manuelle Serialisierung, keine Retry-Konfiguration pro Event. Ob RabbitMQ oder Kafka: die erzeugten Event-Strukturen passen sich an die Queue-Integration an, nicht umgekehrt.
EDA auf Domain-Ebene, nicht auf I/O-Ebene
Jardis macht keine reaktive I/O-Programmierung wie ReactPHP. Die erzeugte Event-Driven Architecture operiert auf Domain-Ebene: Commands triggern Domain Events, Events propagieren zwischen Bounded Contexts. Jeder BC bleibt entkoppelt, die Kommunikation ist explizit und typisiert.
Warum Teams mit Jardis auf Event-Driven Architecture setzen.
Weil EDA nicht an der Idee scheitert, sondern an der Disziplin die nötig ist, sie konsistent durchzuhalten.
Jeder BC weiß, was er auslöst
Erzeugte Domain Events sind Teil des Bounded Context, nicht einer globalen Event-Liste. Welche Events ein BC published ist im Code ablesbar. Keine versteckten Side Effects, keine unsichtbaren Abhängigkeiten.
RabbitMQ und Kafka ohne Konfigurationsaufwand
Die erzeugten Event-Strukturen sind auf asynchrone Verarbeitung ausgelegt. Queue Publishing ist kein Nachgedanke, sondern eingebaut. Serialisierung, Retry-Logik und Dead Letter Handling gehören dazu.
Event-Schema driftet nicht
Typisierte PHP-Klassen statt generischer Arrays. Wenn ein Event-Schema sich ändert, bricht der Build, nicht erst die Produktion. Consumer merken sofort, wenn ein Contract verletzt wird.
Event-Driven Architecture PHP, die im Code hält?
Auf die WaitlistHäufige Fragen
Antworten zu Event-Driven Architecture mit Jardis.
Laravel und Symfony haben eigene Event-Systeme für technische Events. Jardis erzeugt Domain Events: fachliche Ereignisse aus eurem Domänenmodell, typisiert, versioniert und auf asynchrone Queue-Verarbeitung ausgelegt. Sie sind Teil des Bounded Context, nicht des Frameworks.