Zum Inhalt springen

DDD-Architektur für Logistik-Systeme in PHP

Sendungsverfolgung, Frachtmanagement und Warehouse-Steuerung brauchen Event-Driven Domains, keine monolithischen Tabellen. Jardis gibt deinem Logistik-System die Architektur, die jeden Zustandswechsel einer Sendung als Domain Event abbildet.

Je mehr Carrier ihr anbindet, desto fragiler wird das System.

Logistik-Software startet als einfaches Tracking. Dann kommen neue Carrier, Lagerverwaltung, EDI-Schnittstellen. Ohne Domain-Grenzen wird jede Anbindung zum Risiko.

Tracking-Daten stecken in Silos

TMS, WMS und Carrier-APIs liefern Statusupdates in unterschiedlichen Formaten. Ohne zentrale Domain-Events sind Sendungsstatus inkonsistent. Kunden sehen veraltete Daten, Disponenten treffen Entscheidungen auf falscher Basis. Last-Mile-Tracking und Cross-Docking-Status laufen über getrennte Systeme, die sich gegenseitig nicht kennen.

Zustandswechsel gehen verloren

Abholung, Umschlag, Zollfreigabe, Zustellung: jeder Schritt ändert den Status einer Sendung. Ohne Event-Driven Architektur werden Übergänge per direktem Datenbankupdate abgebildet. Lücken im Tracking sind vorprogrammiert. Bei Multi-Modal-Transporten mit Wechsel zwischen LKW, Bahn und Schiff fehlen ganze Abschnitte in der Sendungshistorie.

Jede Carrier-Anbindung ist ein Sonderprojekt

Neue Spediteure, EDI-Protokolle oder API-Versionen erfordern Wochen Integrationsarbeit. Business-Logik ist mit Adapter-Code verwoben. Ein Carrier-Wechsel zieht Änderungen durch die halbe Codebasis. Ob EDIFACT für internationale Fracht oder REST-APIs für Last-Mile-Dienste: jede Integration wird von Grund auf gebaut.

Tracking-Events statt Datenbank-Polling.

Der Jardis Builder erzeugt Event-Driven Domains für jeden Bereich deiner Supply Chain. Tracking, Routing und Warehouse als eigenständige Bounded Contexts mit physischer Trennung.

EVENT-DRIVEN TRACKING

Jeder Sendungsstatus wird ein Domain Event

ShipmentCreated, PickedUp, InTransit, CustomsCleared, Delivered: der Builder erzeugt Events und Handler für jeden Zustandswechsel. Kein direkter Datenbankupdate, kein verlorener Status. Jede Statusänderung ist nachvollziehbar und auditierbar. Bei Multi-Modal-Transporten dokumentiert jeder Carrier-Wechsel ein eigenes Event, sodass die komplette Transportkette lückenlos abgebildet wird.

CARRIER ISOLATION

Spediteure als austauschbare Adapter

Die Ports & Adapters-Architektur trennt Carrier-Integrationen von der Domain-Logik. DHL, FedEx, lokale Spediteure: jeder bekommt einen eigenen Adapter. Ein Carrier-Wechsel betrifft nur den Adapter, nicht die Geschäftslogik. EDIFACT für internationale Fracht, REST für Last-Mile-Dienste und SOAP für Legacy-Carrier koexistieren im selben System ohne gegenseitige Abhängigkeit.

DOMAIN BOUNDARIES

Tracking, Routing und Warehouse als eigene Packages

Jeder Bounded Context wird ein eigenständiges PHP-Package. Das Warehouse-System kann nicht auf Routing-Tabellen zugreifen. Der Builder erzwingt diese Trennung auf Dateisystem-Ebene. TMS- und WMS-Logik bleiben sauber getrennt, auch wenn sie zusammenarbeiten. Zollabwicklung, Lagerverwaltung und Tourenplanung als unabhängige Contexts, verbunden über Domain Events.

BUILDER OUTPUT
80%
Infrastruktur-Code erzeugtEntities, Commands, Queries, Events, API Contracts und die Repository Pipeline für jede Logistik-Domain.
0
verlorene Zustandswechsel
3x
schnellere Carrier-Integration
SUPPLY CHAIN
100%
Event-Driven TrackingJeder Statuswechsel einer Sendung ist ein Domain Event. Lückenlose Nachverfolgung ohne manuelle Synchronisation.

Was Logistik-Teams mit Jardis gewinnen.

Vom lokalen Versand bis zur internationalen Supply Chain. Jardis wächst mit eurer Infrastruktur.

> Event-Driven

Supply Chain als Ereignisstrom

Jeder Schritt in der Lieferkette publiziert ein Domain Event. Nachgelagerte Systeme reagieren automatisch: Lagerbestand aktualisieren, Kunden benachrichtigen, Disponenten informieren.

> Adapter-Architektur

Carrier wechseln ohne Codeumbau

Hexagonale Architektur trennt Carrier-APIs von der Routing-Logik. Neuer Spediteur? Adapter schreiben, anschließen. Die Domain-Logik bleibt unverändert, egal ob EDI, REST oder SOAP.

> Domain Ownership

Teams besitzen Domains, nicht Features

Ein Team verantwortet Tracking. Ein anderes das Warehouse-Management. Deployments sind unabhängig, weil physische Package-Grenzen die Zuständigkeit definieren.

Wie lange sollen eure Sendungsstatus noch per Datenbankupdate wandern?

Auf die Waitlist

Häufige Fragen

Antworten auf die wichtigsten Fragen zu Jardis im Logistik-Kontext.

Ja. Jardis ist für Brownfield-Szenarien gebaut. Du erzeugst einzelne Bounded Contexts und integrierst sie schrittweise in bestehende PHP-Systeme. Die Ports & Adapters-Architektur sorgt dafür, dass neue Domains neben existierendem TMS- oder WMS-Code laufen können. Ein typischer Einstieg: Tracking als eigener Context, der Statusdaten per Domain Events an das bestehende TMS liefert.