Zum Inhalt springen

Bounded Contexts in PHP. Physisch getrennt, nicht nur konzeptuell.

Bounded Contexts sind das Kernkonzept von Domain-Driven Design, aber im Code existieren die Grenzen selten. Jardis generiert jeden als eigenständiges PHP-Package mit eigener Struktur, eigenen Entities und eigenen Regeln.

Bounded Contexts klingen einfach. Sauber umsetzen ist es nicht.

Die meisten Teams zeichnen Domain-Grenzen auf Whiteboards. Im Code existieren sie nicht.

Grenzen existieren nur auf Papier

Im Architektur-Diagramm gibt es klare Domains. Im Code greift der Billing-Service direkt auf User-Tabellen zu, und das Order-Modul liest Inventory-Entities. Die Grenzen erodieren mit jedem Feature, weil nichts sie physisch erzwingt.

Domänen-Logik verteilt sich überall

Ohne echte Trennung wandert Geschäftslogik dorthin, wo sie gerade gebraucht wird. Pricing-Regeln tauchen im Checkout auf, Validierung landet im Controller. Nach einem Jahr weiß niemand mehr, welche Logik zu welcher Domain gehört.

Teams arbeiten gegeneinander statt parallel

Drei Teams, ein Monolith, dieselben Namespaces. Jede Änderung an einer Domain riskiert Seiteneffekte in einer anderen. Deploys werden zur Abstimmungshölle, weil es keine echten Grenzen gibt.

Wie Jardis Bounded Contexts implementiert.

Jeder Bounded Context wird ein eigenständiges PHP-Package. Keine Konventionen, sondern physische Trennung.

PHYSISCHE ISOLATION

Ein Package pro Domain, mit eigener Struktur

Jardis generiert jeden Bounded Context als eigenständiges PHP-Package mit eigener Verzeichnisstruktur: Entities, Commands, Queries, Events, API Contracts und Repository Pipeline. Kein BC importiert Klassen aus einem anderen. Die Trennung ist die Ordnerstruktur selbst.

DEFINIERTE CONTRACTS

Kommunikation nur über Contracts und Events

Bounded Contexts reden nicht direkt miteinander. Jardis generiert API Contracts und Domain Events als definierte Schnittstellen zwischen Domains. Wenn sich ein BC ändert, brechen die Contracts, bevor stille Fehler in Produktion landen.

VOLLSTÄNDIGE ARTEFAKTE

Alles was ein Bounded Context braucht, aus einer Definition

Schema definieren, Builder starten. Jardis generiert 3-Layer Entities, Commands und Queries (CQRS), Domain Events, API Contracts und die Repository Pipeline. 80% des technischen Fundaments steht sofort. Euer Team schreibt die Geschäftslogik.

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%
Infrastruktur pro BC generiertEntities, Commands, Queries, Events, API Contracts und Repository Pipeline. Pro Bounded Context, aus einer Schema-Definition.
3x
schnellere Erstellung neuer Domains
0
Cross-Domain-Zugriffe möglich
ARCHITEKTUR
100%
Domain-IsolationJeder generierte Bounded Context ist ein eigenständiges Package. Keine geteilten Namespaces, keine versteckten Abhängigkeiten zwischen Domains.

Warum Teams mit Jardis auf Bounded Contexts setzen.

Weil DDD nicht an der Theorie scheitert, sondern an der technischen Umsetzung.

> Domain Ownership

Jedes Team besitzt seinen Bounded Context

Billing, Ordering, Inventory: jede Domain ist ein eigenständiges Package. Teams entwickeln und deployen unabhängig. Keine Abstimmung über geteilte Namespaces, keine Merge-Konflikte in fremden Domains.

> Strukturelle Klarheit

Die Architektur erklärt sich selbst

Neue Teammitglieder öffnen das Projekt und sehen sofort: welche Domains existieren, wo die Grenzen liegen, wie BCs kommunizieren. Keine Architektur-Dokumentation nötig, die Struktur ist die Dokumentation.

> Sichere Evolution

Domains ändern ohne Seiteneffekte

Eine Domain umbauen, ohne andere zu brechen. Das geht nur mit echten Grenzen. Jardis erzwingt die Isolation auf Dateisystem-Ebene. Interne Änderungen an einem BC können andere BCs nicht beeinflussen.

Bounded Contexts, die im Code halten?

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 Bounded Contexts mit Jardis.

Pro Bounded Context generiert Jardis ein eigenständiges PHP-Package mit eigener Verzeichnisstruktur. Darin enthalten: die Entity-Hierarchie, CQRS-Infrastruktur, Domain Events und API Contracts für die Kommunikation mit anderen BCs. Jedes Package ist in sich geschlossen, kein BC importiert Klassen aus einem anderen.