Zwei Wege zu DDD. Ein fundamentaler Unterschied.
Ecotone gibt dir ein Runtime-Framework mit Attributes und Message Bus. Jardis generiert den Architektur-Code und gibt dir die volle Kontrolle über jede Datei. Beide lösen DDD in PHP. Der Ansatz könnte unterschiedlicher nicht sein.
Frameworks abstrahieren. Aber Abstraktion hat einen Preis.
Runtime-Frameworks für DDD sind leistungsfähig. Aber sie binden dich an ihre Abstraktion, auch wenn dein Projekt darüber hinauswächst.
Dein Domain-Code gehört dem Framework
Ecotone nutzt PHP-Attributes um Commands, Events und Aggregates zu deklarieren. Deine Business-Logik ist mit Framework-Annotationen durchzogen. Willst du Ecotone entfernen, refaktorierst du jede Klasse. Der Domain-Code wird zur Framework-Abhängigkeit.
Was passiert hinter den Attributes?
Attribute-basierte Konfiguration ist kompakt, aber die Infrastruktur passiert unsichtbar. Routing, Handler-Resolution, Serialisierung: das Framework entscheidet. Wenn das Verhalten nicht deinen Erwartungen entspricht, debuggst du fremden Framework-Code.
Messaging-Architektur von Tag eins
Ecotone setzt auf Message Channels als Kommunikationsmodell. Das ist leistungsfähig für Event-Driven Systeme, aber erzwingt eine Architektur-Entscheidung bevor du weißt, ob du sie brauchst. Nicht jede Domain braucht asynchrones Messaging von Anfang an.
Code der dir gehört. Nicht einem Framework.
Jardis generiert PHP-Code, den du lesen, ändern und besitzen kannst. Kein Runtime-Framework, keine versteckten Abstraktionen, keine Attribute in deiner Domain.
Generierter Code ohne Framework-Abhängigkeit
Der Jardis Builder generiert Entities, Aggregates, Commands, Queries und Domain Events als reinen PHP-Code. Keine Framework-Attributes, keine Runtime-Magie. Jede Klasse ist lesbar, testbar und gehört dir. Du kannst Jardis morgen entfernen und der Code funktioniert weiter.
Hexagonale Architektur auf Dateisystem-Ebene
Ecotone steuert Architektur über Attribute-Konventionen zur Laufzeit. Jardis erzwingt hexagonale Architektur physisch durch Package-Strukturen. Bounded Contexts sind eigenständige PHP-Packages. Layer-Grenzen sind Verzeichnisstrukturen, nicht Annotationen. Verstöße sind technisch unmöglich, nicht nur unerwünscht.
Kein Messaging-Overhead für einfache Domains
Nicht jeder Bounded Context braucht Message Channels und Event Sourcing. Jardis generiert die Architektur die du definierst: CQRS für komplexe Domains, einfache Repository-Pipelines für unkomplizierte. Du entscheidest pro Domain, nicht das Framework.
Sieh selbst, was aus drei Dateien entsteht.
Drei Definitionsdateien rein, ein kompletter Bounded Context raus. Klick dich durch den generierten Code.
# 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
Warum Teams generierten Code einem Runtime-Framework vorziehen.
Nicht weil Ecotone schlecht ist. Sondern weil Code-Ownership langfristig mehr Kontrolle gibt als Framework-Abstraktion.
Jede Zeile ist dein Code
Kein Framework-Internals-Debugging, keine versteckten Konventionen. Was der Builder generiert, liegt als PHP-Dateien in deinem Repository. Neue Entwickler lesen Code, nicht Framework-Docs.
Framework-agnostisch ab der Domain-Schicht
Der generierte Code funktioniert mit Laravel, Symfony, oder ohne Framework. Ecotone bindet dich an sein Messaging-Modell. Jardis generiert Code, den du in jede PHP-Umgebung einbettest.
Kein Framework-Upgrade-Risiko in der Domain
Deine Domain-Logik hat keine Ecotone-Abhängigkeit, keine Attribute die bei Major-Updates brechen. Der generierte Code ist stabiler PHP-Code, unabhängig von Framework-Releasezyklen.
Bereit für DDD in PHP, ohne Runtime-Abhängigkeit?
Auf die WaitlistStruktur kostet weniger als Chaos.
Teste Jardis 7 Tage kostenlos
Lass Jardis an deiner echten Domäne los. Discovery, Struktur und dein erster Platform Build.
Join WaitlistDie komplette DDD-Architektur mit allen Klassen und Contracts. Dein Team schreibt Features, nicht Infrastruktur.
Join WaitlistDie komplette Business-Logik mit Handlern, Validierung und Pipelines. Was früher ein Sprint war, ist jetzt ein Build.
Join WaitlistMehr als 20 Platform Builds pro Monat?
Lass uns sprechenSei dabei, wenn Jardis startet.
Trag dich ein. Du bekommst Zugang, sobald wir live gehen. Inklusive kostenlosem Trial.
Neugierig, wie Jardis funktioniert?
Jardis entdeckenHäufige Fragen
Antworten auf die wichtigsten Fragen zum Vergleich zwischen Jardis und Ecotone.
Nein. Ecotone ist ein durchdachtes PHP-Framework für Message-Driven Architecture mit CQRS und Event Sourcing. Der Unterschied liegt im Ansatz: Ecotone abstrahiert Infrastruktur zur Laufzeit, Jardis generiert sie als PHP-Code der dir gehört. Teams, die volle Code-Ownership und physische Architektur-Grenzen bevorzugen, sind mit Jardis besser bedient.