Fachlicher Kern
Java/Maven
Moderner Enterprise-Java-Workspace mit Deep-Dive-Versionen, Maven Multi-Module-Struktur, Clean Architecture, Outbox, Security, Observability, CQRS, Saga und Cloud-Native-Betrieb.
// PATTERN: Repository Port
public interface OrderRepository {
void save(Order order);
Optional<Order> findById(OrderId id);
}
// PATTERN: Aggregate Root
public final class Order {
public void submit() {
if (lines.isEmpty()) throw new IllegalStateException("Order must contain lines");
status = OrderStatus.SUBMITTED;
}
}
Dieser Master enthaelt jetzt ein direkt ausfuehrbares Maven-Modul runnable-smoke.
Java/Maven
Von Build-Struktur zu fachlich getrennten Modulen.
Saubere Maven-Multi-Module-Struktur, Modulgrenzen, erste Spring-Boot-Starts und Smoke-Flows.
Du erkennst Zweck, Ablauf, Modulgrenzen und Betriebsbezug dieses Masters.
Welche Geschäftsentscheidung wird hier unterstützt und welche Daten müssen nachvollziehbar bleiben?
Welche Module sind wirklich Fachkern und welche sind nur Adapter, Runtime oder Infrastruktur?
Die zwei SVGs trennen bewusst Fachlichkeit und Technik. Dadurch sieht man, ob ein Thema wirklich fachlich ist oder nur eine technische Umsetzungsschicht darstellt.
Öffne RUNNABLE.html oder nutze den Smoke-Start im jeweiligen Workspace.
Wo vorhanden, ergänzen Spring Boot oder Jakarta eine echte Runtime. Smoke bleibt der robuste Minimalstart.
Bei Container-Mastern helfen Compose, Kubernetes und OpenShift-Profile beim Betriebsverständnis.
mvn -q -pl runnable-smoke -am package exec:java
Diese Links führen aus dem Lehrbuch in die eigentliche Projektstruktur.
Modultyp: Use-Case-Modul
Definiert den einfachen Bestell-Use-Case und die Ports, ueber die Domain und Adapter verbunden werden.
PlaceOrderCommandPlaceOrderUseCaseOrderRepositoryPricingPolicyDefaultPricingPolicyApplication ServiceCommand PatternRepository PortStrategy Patternpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Use-Case- und Port-Schicht
Zeigt Clean Architecture mit Commands, Use Cases und Repository-Port.
CreateOrderCommandCreateOrderUseCaseApproveOrderUseCaseOrderRepositoryUse Case InterfaceCommand PatternPort Patternpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Outbound Adapter
Stellt eine einfache In-Memory-Persistenz bereit, damit die Modulgrenzen ohne echte Datenbank sichtbar werden.
InMemoryOrderRepositoryAdapter PatternRepository AdapterFake Adapter for Learningpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Inbound/Outbound Adapter
Kapselt REST, DTO-Mapping, Facade und In-Memory-Persistenz als technische Raender.
OrderControllerOrderDtoOrderDtoMapperOrderFacadeInMemoryOrderRepositoryAdapter PatternDTOMapperFacadepom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Legacy/Process Integration
Kapselt Billing-Anbindung und Fulfillment-Prozess als Gateway, ACL und Saga.
BillingGatewayLegacyBillingClientAdapterOrderFulfillmentSagaSagaGatewayAnti-Corruption LayerAdapter Patternpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Domain-Modul
Enthaelt das einfache Bestellmodell mit Wertobjekten, Status und grundlegenden Invarianten.
OrderOrderLineOrderIdMoneyOrderStatusOrderTestAggregate RootValue ObjectEntityDomain Modelpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Clean-Domain
Vertieft die Domain mit sauberer Trennung von CustomerId, OrderId und Order-Aggregate.
OrderOrderIdCustomerIdAggregate RootValue ObjectClean Domain Modelpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Cloud-Native Runtime
Stellt API und Startklasse fuer die cloud-native Variante bereit.
V05ApplicationOrderApiAPI AdapterComposition RootModular Runtimepom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Eigener Maven-Multi-Module-Workspace.
cd versions/v03-event-driven-outbox-deep-dive
mvn test
mvn package
adapters / app -> application -> domain
Muster sind im Code mit // PATTERN: kommentiert und zentral in ../../docs/design-patterns.md dokumentiert.
Diese Version enthaelt jetzt eine direkte Ablaufbeschreibung:
PROJECTS.md / PROJECTS.html: Gesamtuebersicht der Module dieser Version.README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.Modultyp: Use Case + Outbox Port
Verbindet Bestellablauf mit Outbox-Records, Publisher-Template und Ports fuer robuste Event-Auslieferung.
PlaceOrderUseCaseOutboxRecordOutboxRepositoryMessagePublisherOutboxPublisherTemplateOrderRepositoryTransactional OutboxTemplate MethodPublisher PortApplication Servicepom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Runtime Composition
Startet die V03-Variante mit Domain Events und Outbox-Fluss.
V03ApplicationComposition RootEvent-Driven Runtimepom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Event-faehige Domain
Erweitert die Bestellung um Domain Events und OrderPlaced als fachliches Ereignis.
DomainEventOrderOrderPlacedDomain EventAggregate RootEvent Modelingpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Messaging/Outbox Adapter
Implementiert Outbox-Repository und idempotente Nachrichtenverarbeitung als lernbare Infrastrukturgrenze.
DefaultOutboxPublisherIdempotentMessagePublisherInMemoryOutboxRepositoryOutbox RelayIdempotent ConsumerAdapter Patternpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Eigener Maven-Multi-Module-Workspace.
cd versions/v04-security-observability-deep-dive
mvn test
mvn package
adapters / app -> application -> domain
Muster sind im Code mit // PATTERN: kommentiert und zentral in ../../docs/design-patterns.md dokumentiert.
Diese Version enthaelt jetzt eine direkte Ablaufbeschreibung:
PROJECTS.md / PROJECTS.html: Gesamtuebersicht der Module dieser Version.README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.Modultyp: Runtime Composition
Verdrahtet Core, Security und Observability zu einer nachvollziehbaren Laufzeitvariante.
V04ApplicationComposition RootDecorator Chainpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Core Query/Rules
Buendelt Query-Service und Spezifikationen als fachlichen Kern fuer Security- und Observability-Dekorationen.
OrderQueryServiceDefaultOrderQueryServiceHighValueOrderSpecificationSpecificationService InterfaceCore Domain Servicepom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Audit/Metrics Decorator
Fuegt Audit und Metriken hinzu, ohne den Kernservice mit Querschnittslogik zu vermischen.
AuditedOrderServiceMeteredOrderServiceDecorator PatternAudit TrailMetrics Wrapperpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: Security Boundary
Zeigt Zugriffskontrolle, Approval Policies und Security Proxy rund um fachliche Services.
SecurityContextApprovalPolicyManagerApprovalPolicyRiskOfficerApprovalPolicySecuredOrderQueryProxyProxy PatternPolicy PatternChain of Responsibilitypom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Dieses Modul macht den Workspace sofort ausfuehrbar.
mvn -q -pl runnable-smoke -am package exec:javaDer Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.
Dieses Modul macht den Workspace sofort ausfuehrbar.
mvn -q -pl runnable-smoke -am package exec:javaDer Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.
Dieses Modul macht den Workspace sofort ausfuehrbar.
mvn -q -pl runnable-smoke -am package exec:javaDer Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.
Dieses Modul macht den Workspace sofort ausfuehrbar.
mvn -q -pl runnable-smoke -am package exec:javaDer Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.
Dieses Modul macht den Workspace sofort ausfuehrbar.
mvn -q -pl runnable-smoke -am package exec:javaDer Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.
versions/v01-modular-baselineEigener Maven-Multi-Module-Workspace.
cd versions/v01-modular-baseline
mvn test
mvn package
adapters / app -> application -> domain
Muster sind im Code mit // PATTERN: kommentiert und zentral in ../../docs/design-patterns.md dokumentiert.
Diese Version enthaelt jetzt eine direkte Ablaufbeschreibung:
PROJECTS.md / PROJECTS.html: Gesamtuebersicht der Module dieser Version.README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.versions/v01-modular-baseline/order-appModultyp: Bootstrap / Inbound Adapter
Startet die einfache Anwendung und stellt einen REST-nahen Einstieg in den Bestellprozess dar.
V01ApplicationOrderControllerControllerComposition RootDependency Injectionpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Eigener Maven-Multi-Module-Workspace.
cd versions/v02-clean-architecture-deep-dive
mvn test
mvn package
adapters / app -> application -> domain
Muster sind im Code mit // PATTERN: kommentiert und zentral in ../../docs/design-patterns.md dokumentiert.
Diese Version enthaelt jetzt eine direkte Ablaufbeschreibung:
PROJECTS.md / PROJECTS.html: Gesamtuebersicht der Module dieser Version.README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.Modultyp: Runtime Composition
Verdrahtet Clean-Architecture-Bausteine in einer lauffaehigen Startkonfiguration.
V02ApplicationComposition RootDependency Injectionpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.versions/v05-cloud-native-ops-deep-diveEigener Maven-Multi-Module-Workspace.
cd versions/v05-cloud-native-ops-deep-dive
mvn test
mvn package
adapters / app -> application -> domain
Muster sind im Code mit // PATTERN: kommentiert und zentral in ../../docs/design-patterns.md dokumentiert.
Diese Version enthaelt jetzt eine direkte Ablaufbeschreibung:
PROJECTS.md / PROJECTS.html: Gesamtuebersicht der Module dieser Version.README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.Modultyp: Command/CQRS Write Side
Enthaelt die schreibende Seite fuer Bestellungen mit Command Handler und SubmitOrderCommand.
SubmitOrderCommandOrderCommandHandlerCQRSCommand HandlerCommand Patternpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Modultyp: CQRS Read Side
Zeigt ein separates Lesemodell und Query Handler fuer schnelle fachliche Abfragen.
OrderReadModelOrderQueryHandlerCQRSRead ModelQuery Handlerpom.xml ansehen.../../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.Dieses Paket ist ein neuer Master-Workspace für moderne Enterprise-Java- und Maven-Modularisierung.
Es ist bewusst als Lern- und Referenzpaket aufgebaut: jede Version vertieft Architektur, Code, Tests, Infrastruktur und Entwurfsmuster.
| Bereich | Zweck |
|---|---|
versions/v01-modular-baseline | Maven Multi-Module, Domain/Application/Adapter-Aufteilung, einfacher Spring-Boot-Startpunkt |
versions/v02-clean-architecture-deep-dive | Ports & Adapters, Use Cases, Mapper, Testgrenzen, API-Schicht |
versions/v03-event-driven-outbox-deep-dive | Domain Events, Outbox, Idempotenz, Publish-Workflow |
versions/v04-security-observability-deep-dive | Security Boundary, Audit, Metrics, Decorator/Chain/Proxy |
versions/v05-cloud-native-ops-deep-dive | Cloud-Native Betrieb, OpenShift/Kubernetes, CQRS, Saga, Resilience |
docs/design-patterns.md | zentrale Pattern-Dokumentation mit Zweck, Einsatzort und Begründung |
docs/architecture.md | Architekturüberblick, Modulregeln, Kommunikationsregeln |
docs/deep-dive-roadmap.md | empfohlene Lernreihenfolge und Erweiterungsplan |
html/desktop/index.html | Desktop-Leseversion mit modernen Karten und Codeblöcken |
html/iphone-safari/index.html | iPhone-/Safari-taugliche Leseversion ohne Pflicht-JavaScript |
prompts/ | Prompts für nächste Ausbauphasen |
reports/ | Prüfberichte, Linkprüfung, Lizenzhinweise |
1. ZIP entpacken.
2. index.html im Root öffnen.
3. Danach entweder in die HTML-Leseversion oder direkt in versions/... wechseln.
4. Für Maven pro Version in den jeweiligen Versionsordner wechseln und mvn test oder mvn package ausführen.
Jede Version ist ein eigener Maven-Multi-Module-Workspace. Dadurch kann man Versionen unabhängig betrachten, vergleichen und vertiefen.
Die Projekte sind didaktisch aufgebaut: nicht jede Infrastruktur-Komponente verbindet sich mit einem echten Server, aber jede Schicht zeigt bewusst Enterprise-Struktur, Schnittstellen und Erweiterungspunkte.
Verwendete Muster sind an zwei Stellen markiert:
// PATTERN: Repositorydocs/design-patterns.mdStand: 2026-07-07
Siehe RUNNABLE.md und RUNNABLE.html. Jeder Workspace enthaelt ein Modul runnable-smoke mit Startskripten.
<span class="ok">Runnable-Ergaenzung</span>
Dieser Master enthaelt jetzt ein eigenes Maven-Modul runnable-smoke. Damit ist nicht nur Dokumentation vorhanden, sondern ein direkt ausfuehrbarer fachlicher Ablauf.
versions/v01-modular-baseline: cd versions/v01-modular-baseline && mvn -q -pl runnable-smoke -am package exec:javaversions/v02-clean-architecture-deep-dive: cd versions/v02-clean-architecture-deep-dive && mvn -q -pl runnable-smoke -am package exec:javaversions/v03-event-driven-outbox-deep-dive: cd versions/v03-event-driven-outbox-deep-dive && mvn -q -pl runnable-smoke -am package exec:javaversions/v04-security-observability-deep-dive: cd versions/v04-security-observability-deep-dive && mvn -q -pl runnable-smoke -am package exec:javaversions/v05-cloud-native-ops-deep-dive: cd versions/v05-cloud-native-ops-deep-dive && mvn -q -pl runnable-smoke -am package exec:javaDer Ablauf simuliert eine echte Enterprise-Kette:
AWS, OpenShift, IBM MQ, Oracle, SFTP, Spring/Jakarta Runtime und Bare-Metal-Adapter brauchen reale Infrastruktur oder Container. Der Smoke-Runner ist bewusst lokal und ohne externe Infrastruktur startbar. Die produktnahen Module bleiben Maven-Module mit POMs, Beschreibungen und Pattern-Kommentaren; der Smoke-Runner ist der schnelle Nachweis, dass der Workspace ausfuehrbar ist.
1. mvn -q -pl runnable-smoke -am package exec:java
2. Danach gesamtes Projekt bauen: mvn clean package
3. Dann einzelne Runtime-Module starten, z. B. Spring Boot oder OpenShift-Deployment.