Zum Inhalt springen

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 generiert 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 generiert Event-Driven Architecture PHP auf Domain-Ebene: typisierte Events, automatisches Queue Publishing, keine manuelle Registrierung.

DOMAIN EVENTS

Typisierte Events direkt aus dem Domain-Modell

Jardis generiert 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 generierten Codes, kein externes Dokument das veraltet.

QUEUE PUBLISHING

Event-Driven Architecture PHP ohne Konfigurationsaufwand

Generierte Domain Events bringen automatisches Queue Publishing mit. Kein separates Job-Setup, keine manuelle Serialisierung, keine Retry-Konfiguration pro Event. Ob RabbitMQ oder Kafka: die generierten Event-Strukturen passen sich an die Queue-Integration an, nicht umgekehrt.

DOMAIN-EBENE

EDA auf Domain-Ebene, nicht auf I/O-Ebene

Jardis macht keine reaktive I/O-Programmierung wie ReactPHP. Die generierte 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.

Sieh selbst, was aus drei Dateien entsteht.

Drei Definitionsdateien rein, ein kompletter Bounded Context raus. Klick dich durch den generierten Code.

E-Commerce / Sales
schema.yaml
# Database Schema — Sales Bounded Context
# This file defines the persistent storage structure.

schema:
  domain: ECommerce
  boundedContext: Sales

tables:
  order:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      public_id:
        type: uuid7
        unique: true
      customer_email:
        type: string
        length: 255
      status:
        type: string
        length: 32
        default: "draft"
      total_amount:
        type: integer
      currency:
        type: string
        length: 3
        default: "EUR"
      created_at:
        type: datetime
      updated_at:
        type: datetime
        nullable: true

  order_item:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      order_id:
        type: integer
        foreignKey:
          table: order
          column: id
          onDelete: cascade
      product_name:
        type: string
        length: 255
      sku:
        type: string
        length: 64
      quantity:
        type: integer
      unit_price:
        type: integer
      line_total:
        type: integer
Dateien
Definitions (Input)
Generated Code (Output)
BUILDER OUTPUT
80%
Event-Infrastruktur pro BC generiertDomain Events, Queue Publishing, Event-Klassen und Propagation-Logik. Pro Bounded Context, aus einer Schema-Definition.
0
manuelle Event-Registrierungen
100%
typisierte Event-Objekte
ONBOARDING
3x
schnellere Einarbeitung in Event-FlowsNeue Entwickler sehen sofort, welche Events ein Bounded Context auslöst und welche er konsumiert. Kein Suchen in Service-Provider-Registrierungen.

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.

> Explizite Entkopplung

Jeder BC weiß, was er auslöst

Generierte 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.

> Queue-Integration

RabbitMQ und Kafka ohne Konfigurationsaufwand

Die generierten Event-Strukturen sind auf asynchrone Verarbeitung ausgelegt. Queue Publishing ist kein Nachgedanke, sondern generiert. Serialisierung, Retry-Logik und Dead Letter Handling gehören dazu.

> Schema-Stabilität

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 Waitlist

Struktur kostet weniger als Chaos.

Kostenloser Trial

Teste Jardis 7 Tage kostenlos

Lass Jardis an deiner echten Domäne los. Discovery, Struktur und dein erster Platform Build.

Join Waitlist
20 Discovery Runs
5 Structure Builds
1 Platform Build
Alle Jardis Packages als Open Source
Jardis Base
29 €pro Monat

Die komplette DDD-Architektur mit allen Klassen und Contracts. Dein Team schreibt Features, nicht Infrastruktur.

Join Waitlist
Unlimited Discovery Runs
Unlimited Structure Builds
Alle 26 Jardis Packages enthalten
PHPStan Level 8 von Anfang an
Jardis Pro
180 €pro Monat

Die komplette Business-Logik mit Handlern, Validierung und Pipelines. Was früher ein Sprint war, ist jetzt ein Build.

Join Waitlist
Alles aus Jardis Base
Commands, Queries, Events direkt implementiert
Platform Code in Sekunden statt Wochen
Weitere Runs für 89 € einzeln
Enterprise

Mehr als 20 Platform Builds pro Monat?

Lass uns sprechen

Sei dabei, wenn Jardis startet.

Trag dich ein. Du bekommst Zugang, sobald wir live gehen. Inklusive kostenlosem Trial.

100+ Entwickler warten bereits auf den Launch

Neugierig, wie Jardis funktioniert?

Jardis entdecken

Häufige Fragen

Antworten zu Event-Driven Architecture mit Jardis.

Laravel und Symfony haben eigene Event-Systeme für technische Events. Jardis generiert 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.