Zum Inhalt springen

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.

CODE-OWNERSHIP

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.

ARCHITEKTUR ALS STRUKTUR

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.

SCHRITTWEISE ADOPTION

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.

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)
CODE-OWNERSHIP
80%
Architektur-Code generiert, ohne Runtime-AbhängigkeitEntities, Aggregates, Commands, Queries, Events und Repository Pipeline. Als PHP-Code generiert, nicht durch ein Framework abstrahiert.
0
Framework-Annotationen in der Domain-Schicht
100%
Architektur-konform ohne Runtime-Enforcement
TRANSPARENZ
3x
schnelleres Onboarding durch lesbaren CodeNeue Teammitglieder lesen PHP-Klassen statt Framework-Dokumentation. Die Architektur erklärt sich durch Struktur, nicht durch Abstraktion.

Warum Teams generierten Code einem Runtime-Framework vorziehen.

Nicht weil Ecotone schlecht ist. Sondern weil Code-Ownership langfristig mehr Kontrolle gibt als Framework-Abstraktion.

> Transparenz

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.

> Flexibilität

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.

> Langfristige Sicherheit

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