Master 2 umfangreicher

Moderne Enterprise Maven Modular Projekte

Umfangreicheres Master-Paket mit Maven-Reactor, Java 21, Spring Boot, Quarkus/Jakarta, Outbox/Saga, Security/Observability, Architecture Tests, Design-Pattern-Markierungen und Deep-Dive-Versionen.

18 Maven-Module8 Deep DivesPattern im CodeMD + HTML + PDF + ZIP

Suche

Start

Lernbuch Desktop

Konsolidierte HTML-Ausgabe mit Suche, Inhaltsverzeichnis und Codebloeken.

iPhone/Safari HTML

Statische mobile Variante mit robustem Layout.

Lehrbuch

Schoen gesetztes PDF mit klickbarem Inhaltsverzeichnis.

Maven Workspace

Codeprojekt mit Parent POM und Modulen.

Design Patterns

Pattern, Zweck, Einsatzort und Begruendung.

Pruefbericht

Dateizaehlung, Pattern-Marker, Linkcheck, Lizenzscan.

Deep-Dive-Versionen

V01

Reactor, Parent POM, BOM

V02

DDD und Hexagonal

V03

JPA und Transaktionen

V04

Outbox und Saga

V05

Security und Observability

V06

Quarkus/Jakarta

V07

Contracts und Tests

V08

Referenzplattform

Architekturbild

Hexagonal Architecture

Codeblock-Beispiel

// PATTERN: Aggregate Root - zentrale Konsistenzgrenze
public final class Order extends AggregateRoot<OrderId> {
    public void place() {
        if (lines.isEmpty()) throw new IllegalStateException("Order must contain lines");
        registerEvent(new OrderPlaced(id, lines.size()));
    }
}

Stand 2026-07-07. Root-Index mit relativen Links.

Runnable Smoke-Test

Dieser Master enthaelt jetzt ein direkt ausfuehrbares Maven-Modul runnable-smoke.

Runnable-Anleitung oeffnen

Lehrbuch und Praxis

Was lerne ich hier?

Fachlicher Kern

Enterprise Modularisierung

Technischer Fokus

Wie ein Demo-Projekt in eine größere Unternehmensstruktur wächst.

Warum wichtig?

Erweiterte Modulstruktur mit mehr Verantwortlichkeiten, Beschreibungen und Projektübersicht.

Lernziel

Du erkennst Zweck, Ablauf, Modulgrenzen und Betriebsbezug dieses Masters.

Fachliches Mini-Szenario

Szenario: Dieser Master zeigt einen fokussierten Lernabschnitt: Erweiterte Modulstruktur mit mehr Verantwortlichkeiten, Beschreibungen und Projektübersicht. Der Ablauf ist so aufgebaut, dass man zuerst Zweck und Kontext versteht, danach Module und Runtime liest und erst anschließend tiefer in Code, Muster und Infrastruktur einsteigt.
?

Fachliche Frage

Welche Geschäftsentscheidung wird hier unterstützt und welche Daten müssen nachvollziehbar bleiben?

?

Technische Frage

Welche Module sind wirklich Fachkern und welche sind nur Adapter, Runtime oder Infrastruktur?

Fachliches und technisches SVG

Fachlicher AblaufZielbildModuleAblaufRuntimeQualität
Technischer AblaufREST/APIUse CaseDomainRepositoryOutbox/EventAdapter

Die zwei SVGs trennen bewusst Fachlichkeit und Technik. Dadurch sieht man, ob ein Thema wirklich fachlich ist oder nur eine technische Umsetzungsschicht darstellt.

Modulkarte

Domain / Fachmodell
Application / Use Cases
Adapter / Infrastruktur
Runtime / Start
Qualität / Betrieb
Dokumentation / Lernen
Leseregel: Starte immer beim Fachmodell und gehe erst danach in Adapter, Runtime und Plattform. So bleibt die Architektur verständlich.

Start, Runtime und praktische Nutzung

Schnellstart

Öffne RUNNABLE.html oder nutze den Smoke-Start im jeweiligen Workspace.

Spring/Jakarta

Wo vorhanden, ergänzen Spring Boot oder Jakarta eine echte Runtime. Smoke bleibt der robuste Minimalstart.

Container

Bei Container-Mastern helfen Compose, Kubernetes und OpenShift-Profile beim Betriebsverständnis.

mvn -q -pl runnable-smoke -am package exec:java

Was ist Demo, was wäre Produktion?

  • Demo: lokale Startbarkeit, vereinfachte Adapter, nachvollziehbare Abläufe.
  • Produktionsnah: klare Modulgrenzen, dokumentierte Patterns, Container-/Runtime-Profile und Betriebsdenken.
  • Noch zu ergänzen für echte Produktion: echte Secrets, echte Infrastruktur, Security-Härtung, Lasttests und verbindliche Compliance-Vorgaben.

Weiter im Projekt

Diese Links führen aus dem Lehrbuch in die eigentliche Projektstruktur.

Final UI & Lehrbuch Upgrade · Kacheln, zwei SVG-Perspektiven, Mini-Szenario und bessere Leseführung.

Module und Quellcode

28 Module4 KategorienInhalte vollständig übernommen

Messaging 19

mvn-ws-sb3-quarkus-jpa-kafkaMessaging

Dieses Workspace-Paket ist der umfangreichere zweite Master: ein Maven-Reactor mit Domänenmodulen, Applikationsschicht, Adaptern, Spring-Boot-App, Quarkus-App, Architecture Tests, Outbox/Saga-Beispiel und Pattern-Markierungen im Code.

Schnellstart

cd mvn-ws-sb3-quarkus-jpa-kafka
mvn -DskipTests verify
mvn -pl app-spring-boot spring-boot:run
mvn -pl app-quarkus quarkus:dev

Wichtig

  • Java 21 ist bewusst gewählt.
  • Maven-Module trennen Domain, Application, Adapter und Apps.
  • Jede fachliche Schlüsselklasse enthält // PATTERN:-Kommentare.
  • docs/design-patterns.md erklaert Pattern, Zweck, Einsatzort und Grund.

Projektbeschreibungen und Ablauf

Die Modulbeschreibungen sind direkt im Workspace integriert:

  • PROJECTS.md / PROJECTS.html: Gesamtuebersicht aller Maven-Module und End-to-End-Ablauf.
  • Jedes Modul besitzt jetzt ein eigenes README.md und README.html mit Zweck, Ablauf, wichtigen Klassen und verwendeten Entwurfsmustern.

Kurzablauf

  1. REST/Quarkus nimmt eine Bestellung entgegen.
  2. order-application erzeugt und orchestriert den Use Case.
  3. Domain-Module pruefen Regeln und erzeugen Events.
  4. Persistence/Outbox speichern Bestellung und Event-Auslieferungsabsicht.
  5. Kafka/Legacy/Security/Observability werden ueber Adapter angebunden.
  6. Architecture Tests pruefen die Regeln im Build.

Codex / Claude Code Phasenaufbau

Dieses Projekt enthält jetzt einen eigenen Bereich, der beschreibt, wie Codex oder Claude Code den Workspace phasenweise aufbauen würde: AI_BUILD_PHASES.html.

v04-events-outbox-sagaMessaging

Deep Dive 04: v04-events-outbox-saga

Fokus: Domain Events, Outbox, Relay, Saga.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

adapters-legacy-aclMessaging

Adapters Legacy ACL

Kurzbeschreibung

Modultyp: Legacy Integration

Schuetzt moderne Domain vor altem SOAP-/Legacy-Modell durch eine Anti-Corruption-Layer.

Was macht das Modul?

  • kapselt LegacySoapClient
  • uebersetzt LegacyOrderSnapshot in modernes Modell
  • verhindert, dass Legacy-Begriffe in Use Cases durchrutschen

Ablauf im Gesamtsystem

  1. Application braucht Legacy-Daten.
  2. LegacyOrderGateway ruft SOAP Client.
  3. LegacyOrderMapper transformiert fremdes Format.
  4. Use Case sieht nur saubere moderne Begriffe.

Wichtige Klassen und Dateien

  • LegacyOrderGateway
  • LegacySoapClient
  • LegacyOrderMapper
  • LegacyOrderSnapshot

Verwendete Entwurfsmuster

  • Anti-Corruption Layer
  • Gateway
  • Mapper

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

adapters-messaging-kafkaMessaging

Adapters Messaging Kafka

Kurzbeschreibung

Modultyp: Outbound Messaging Adapter

Publiziert Integrationsereignisse nach Kafka und schuetzt Konsumenten gegen doppelte Verarbeitung.

Was macht das Modul?

  • stellt KafkaEventPublisher bereit
  • nutzt IdempotentConsumerGuard fuer doppelte Nachrichten
  • bindet Outbox-Auslieferung an Messaging

Ablauf im Gesamtsystem

  1. OutboxRelay liefert Record an Publisher.
  2. KafkaEventPublisher sendet Nachricht.
  3. ConsumerGuard verhindert doppelte Verarbeitung bei Retry.

Wichtige Klassen und Dateien

  • KafkaEventPublisher
  • IdempotentConsumerGuard

Verwendete Entwurfsmuster

  • Publisher Adapter
  • Idempotent Consumer
  • Outbox Relay

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

adapters-persistence-jpaMessaging

Adapters Persistence JPA

Kurzbeschreibung

Modultyp: Outbound Adapter

Implementiert Persistenz fuer Orders und Outbox, ohne JPA in die Domain eindringen zu lassen.

Was macht das Modul?

  • mappt Domain Aggregate auf OrderEntity
  • implementiert OrderRepository-Port
  • stellt SpringTransactionBoundary bereit

Ablauf im Gesamtsystem

  1. Application ruft OrderRepository.
  2. JpaOrderRepositoryAdapter mappt Domain auf Entity.
  3. Spring Data Repository persistiert.
  4. TransactionBoundary sorgt fuer Commit/Rollback.

Wichtige Klassen und Dateien

  • JpaOrderRepositoryAdapter
  • OrderEntity
  • SpringDataOrderJpaRepository
  • SpringTransactionBoundary

Verwendete Entwurfsmuster

  • Repository Adapter
  • Data Mapper
  • Unit of Work
  • Adapter Pattern

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

adapters-rest-springMessaging

Adapters REST Spring

Kurzbeschreibung

Modultyp: Inbound Adapter

Stellt HTTP-Endpunkte bereit und uebersetzt Web-Requests in Use-Case-Commands.

Was macht das Modul?

  • entkoppelt REST-API von Domain-Objekten
  • mappt Exceptions auf HTTP-Antworten
  • ruft Use Cases ueber Interfaces auf

Ablauf im Gesamtsystem

  1. Client sendet HTTP Request.
  2. OrderRestController validiert und baut Command.
  3. PlaceOrderUseCase wird aufgerufen.
  4. Antwort wird als DTO/HTTP Response zurueckgegeben.

Wichtige Klassen und Dateien

  • OrderRestController
  • RestExceptionMapper

Verwendete Entwurfsmuster

  • Adapter Pattern
  • Controller
  • DTO Mapping

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

app-quarkusMessaging

App Quarkus

Kurzbeschreibung

Modultyp: Alternative Runtime

Zeigt dieselben Use Cases in einer Quarkus/Jakarta-Runtime, um Framework-Austauschbarkeit der Architektur zu demonstrieren.

Was macht das Modul?

  • stellt QuarkusOrderResource bereit
  • verdrahtet einfache In-Memory-Komponenten
  • zeigt Health/OpenAPI/Metrics-Erweiterbarkeit

Ablauf im Gesamtsystem

  1. Quarkus startet Resource.
  2. InMemoryQuarkusWiring liefert Use-Case-Instanzen.
  3. HTTP-Aufruf nutzt dieselbe Application-Schicht wie Spring.

Wichtige Klassen und Dateien

  • QuarkusOrderResource
  • InMemoryQuarkusWiring

Verwendete Entwurfsmuster

  • Composition Root
  • Adapter Pattern
  • Runtime Portability

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

app-spring-bootMessaging

App Spring Boot

Kurzbeschreibung

Modultyp: Runtime Composition

Startet die Spring-Boot-Variante und verdrahtet REST, Persistenz, Messaging, Security und Observability.

Was macht das Modul?

  • enthaelt EnterpriseSpringApplication
  • registriert UseCaseConfiguration
  • bietet Actuator/Security-Anknuepfung
  • zeigt produktionsnahe Spring-Runtime

Ablauf im Gesamtsystem

  1. Spring Boot startet Application Context.
  2. UseCaseConfiguration verbindet Ports mit Adaptern.
  3. REST Controller nimmt Requests an.
  4. JPA/Kafka/Legacy Adapter fuehren technische Arbeit aus.

Wichtige Klassen und Dateien

  • EnterpriseSpringApplication
  • UseCaseConfiguration

Verwendete Entwurfsmuster

  • Composition Root
  • Dependency Injection
  • Modular Monolith Runtime

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

customer-domainMessaging

Customer Domain

Kurzbeschreibung

Modultyp: Bounded Context

Kapselt Kundenregeln, besonders Kredit- und Freigabeentscheidungen fuer Bestellungen.

Was macht das Modul?

  • trennt Kundenlogik von Order-Logik
  • stellt CustomerCreditPolicy fuer Use Cases bereit
  • macht fachliche Entscheidung testbar ohne Infrastruktur

Ablauf im Gesamtsystem

  1. Order Application fragt Credit Policy vor dem Platzieren.
  2. Policy entscheidet anhand Kundendaten und Risiko.
  3. Nur das Ergebnis fliesst in den Bestellprozess ein.

Wichtige Klassen und Dateien

  • CustomerCreditPolicy

Verwendete Entwurfsmuster

  • Policy Pattern
  • Domain Service

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

fulfillment-domainMessaging

Fulfillment Domain

Kurzbeschreibung

Modultyp: Bounded Context

Plant Versand- oder Erfuellungsaktivitaeten nach erfolgreicher Bestellung und Zahlung.

Was macht das Modul?

  • trennt Fulfillment von Order und Payment
  • beschreibt Planungslogik fuer Lieferung
  • kann spaeter eigene Events und Policies erhalten

Ablauf im Gesamtsystem

  1. Nach erfolgreicher Zahlung startet Fulfillment-Planung.
  2. FulfillmentPlanner erzeugt naechste Schritte.
  3. Adapter koennen daraus Tasks, Events oder externe Aufrufe machen.

Wichtige Klassen und Dateien

  • FulfillmentPlanner

Verwendete Entwurfsmuster

  • Domain Service
  • Process Step

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

integration-outboxMessaging

Integration Outbox

Kurzbeschreibung

Modultyp: Integration / Reliability

Macht Event-Publishing robust, indem fachliche Aenderung und Event-Auslieferungsabsicht getrennt aber nachvollziehbar behandelt werden.

Was macht das Modul?

  • modelliert OutboxRecord
  • schreibt Events ueber OutboxWriter
  • liefert Events ueber OutboxRelay aus
  • zeigt PaymentSaga als Prozesskoordination

Ablauf im Gesamtsystem

  1. Domain erzeugt Event.
  2. Application speichert Aggregate und OutboxRecord in einer Transaktion.
  3. OutboxRelay liest nicht publizierte Records.
  4. Messaging Adapter publiziert Events und markiert Erfolg.

Wichtige Klassen und Dateien

  • OutboxRecord
  • OutboxWriter
  • OutboxRelay
  • PaymentSaga

Verwendete Entwurfsmuster

  • Transactional Outbox
  • Saga
  • Relay Pattern
  • Idempotency

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

inventory-domainMessaging

Inventory Domain

Kurzbeschreibung

Modultyp: Bounded Context

Beschreibt Reservierungsregeln fuer Lagerbestand, ohne direkt von Datenbank oder Messaging abzuhaengen.

Was macht das Modul?

  • stellt InventoryReservationPolicy bereit
  • kapselt Pruefung, ob Ware reservierbar ist
  • bleibt als Domain-Regel isoliert testbar

Ablauf im Gesamtsystem

  1. Order Application prueft Reservierbarkeit.
  2. Inventory Policy bewertet Positionen.
  3. Bei Erfolg darf die Bestellung fortgesetzt werden.

Wichtige Klassen und Dateien

  • InventoryReservationPolicy

Verwendete Entwurfsmuster

  • Policy Pattern
  • Domain Service

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

notification-domainMessaging

Notification Domain

Kurzbeschreibung

Modultyp: Bounded Context

Kapselt Benachrichtigungsvorlagen und die fachliche Entscheidung, welche Nachricht wann versendet werden soll.

Was macht das Modul?

  • stellt NotificationTemplate bereit
  • trennt fachlichen Inhalt von Mail/SMS/Push-Technik
  • erleichtert Tests fuer Benachrichtigungstexte

Ablauf im Gesamtsystem

  1. Ein Event wie OrderPlaced loest Benachrichtigung aus.
  2. Template erzeugt fachlichen Inhalt.
  3. Ein Adapter versendet spaeter ueber Mail, Kafka oder API.

Wichtige Klassen und Dateien

  • NotificationTemplate

Verwendete Entwurfsmuster

  • Template Method / Template Object
  • Domain Service

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

order-applicationMessaging

Order Application

Kurzbeschreibung

Modultyp: Use-Case-Schicht

Orchestriert den fachlichen Bestellablauf zwischen Domain-Modulen, Ports, Transaktionen und Ergebnisobjekten.

Was macht das Modul?

  • implementiert PlaceOrderUseCase
  • koordiniert Customer, Inventory, Pricing, Payment-Port und OrderRepository
  • definiert TransactionBoundary als technische Grenze ohne Framework-Kopplung

Ablauf im Gesamtsystem

  1. REST oder Quarkus Resource sendet PlaceOrderCommand.
  2. PlaceOrderService prueft Regeln und erzeugt Order.
  3. TransactionBoundary kapselt Commit/Rollback.
  4. Repository und Outbox werden ueber Ports/Adapter angeschlossen.

Wichtige Klassen und Dateien

  • PlaceOrderCommand
  • PlaceOrderUseCase
  • PlaceOrderService
  • TransactionBoundary
  • OrderQueryService

Verwendete Entwurfsmuster

  • Application Service
  • Command Pattern
  • Unit of Work / Transaction Boundary
  • Use Case Interface

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

order-domainMessaging

Order Domain

Kurzbeschreibung

Modultyp: Kern-Domain

Modelliert Bestellung, Bestellpositionen, Status, Repository-Port und fachliche Spezifikationen.

Was macht das Modul?

  • validiert Bestellregeln im Aggregate
  • publiziert OrderPlaced als Domain Event
  • definiert OrderRepository als Port statt JPA-Repository

Ablauf im Gesamtsystem

  1. PlaceOrderService erstellt Order aus Command-Daten.
  2. Order prueft Invarianten und registriert Domain Events.
  3. OrderRepository speichert das Aggregate ueber einen Adapter.

Wichtige Klassen und Dateien

  • Order
  • OrderLine
  • OrderStatus
  • OrderPlaced
  • OrderRepository
  • OrderSpecification

Verwendete Entwurfsmuster

  • Aggregate Root
  • Repository Port
  • Specification
  • Domain Event

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

payment-domainMessaging

Payment Domain

Kurzbeschreibung

Modultyp: Bounded Context / Port

Definiert die Zahlungsintegration als Port, damit echte Provider, Mocks oder Legacy-Zahlungssysteme austauschbar bleiben.

Was macht das Modul?

  • stellt PaymentGatewayPort bereit
  • vermeidet Provider-Abhaengigkeit in der Application-Schicht
  • unterstuetzt Saga- und Kompensationsablaufe

Ablauf im Gesamtsystem

  1. PaymentSaga oder Application ruft PaymentGatewayPort.
  2. Ein Adapter fuehrt die echte Zahlung aus.
  3. Ergebnis steuert naechste Saga-Aktion.

Wichtige Klassen und Dateien

  • PaymentGatewayPort

Verwendete Entwurfsmuster

  • Port and Adapter
  • Gateway Pattern

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

platform-bomMessaging

Platform BOM

Kurzbeschreibung

Modultyp: Maven-BOM / Build Governance

Zentralisiert Versionsverwaltung und gemeinsame Test-/Architektur-Bibliotheken, damit alle Module reproduzierbar dieselben Dependency-Versionen verwenden.

Was macht das Modul?

  • legt verwaltete Dependency-Versionen fuer Tests und Architekturregeln fest
  • verhindert Versionswildwuchs in Fachmodulen
  • bildet die technische Governance-Schicht des Reactors

Ablauf im Gesamtsystem

  1. Wird zuerst im Reactor gelesen.
  2. Andere Module importieren oder verwenden die verwalteten Versionen indirekt ueber den Parent.
  3. Build- und Security-Checks koennen spaeter hier konsolidiert werden.

Wichtige Klassen und Dateien

  • pom.xml als zentrale BOM-Definition

Verwendete Entwurfsmuster

  • Dependency Management Pattern
  • Platform Governance

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

pricing-domainMessaging

Pricing Domain

Kurzbeschreibung

Modultyp: Bounded Context

Berechnet Preise ueber austauschbare Strategien, damit Rabatt-, Staffel- oder Kampagnenlogik nicht im Order Aggregate landet.

Was macht das Modul?

  • definiert PricingStrategy als Erweiterungspunkt
  • erlaubt unterschiedliche Preisalgorithmen
  • haelt Preisfindung getrennt von Bestellung

Ablauf im Gesamtsystem

  1. Use Case uebergibt Warenkorb oder Positionen an Pricing Strategy.
  2. Strategie berechnet Money-Werte.
  3. Order uebernimmt berechnete Werte als Teil der Bestellpositionen.

Wichtige Klassen und Dateien

  • PricingStrategy

Verwendete Entwurfsmuster

  • Strategy Pattern
  • Domain Service

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

shared-kernelMessaging

Shared Kernel

Kurzbeschreibung

Modultyp: Domain Foundation

Enthaelt kleine, stabile Bausteine, die mehrere fachliche Bounded Contexts gemeinsam benutzen duerfen.

Was macht das Modul?

  • stellt DomainEvent, AggregateRoot, Money, Result und IdempotencyKey bereit
  • haelt gemeinsame Sprache bewusst klein
  • verhindert Kopieren von Wertobjekten in jedem Modul

Ablauf im Gesamtsystem

  1. Domain-Module haengen von shared-kernel ab.
  2. Aggregate registrieren Domain Events.
  3. Application und Adapter lesen diese Basistypen, ohne eigene Framework-Abhaengigkeiten in die Domain zu druecken.

Wichtige Klassen und Dateien

  • AggregateRoot
  • DomainEvent
  • Money
  • Result
  • IdempotencyKey

Verwendete Entwurfsmuster

  • Value Object
  • Domain Event
  • Aggregate Root
  • Result Pattern

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

Security 1

v05-security-observabilitySecurity

Deep Dive 05: v05-security-observability

Fokus: Security, Health, Metrics, Audit.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

Testing 3

v07-contract-testingTesting

Deep Dive 07: v07-contract-testing

Fokus: OpenAPI, Consumer Contracts, Architecture Tests.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

architecture-testsTesting

Architecture Tests

Kurzbeschreibung

Modultyp: Qualitaets-Gate

Prueft Architekturregeln automatisiert, damit Modulgrenzen und Pattern-Markierungen nicht nur Dokumentation bleiben.

Was macht das Modul?

  • enthaelt ArchUnit-Regeln
  • prueft verbotene Abhaengigkeiten
  • stellt sicher, dass Pattern-Marker im Code vorhanden sind

Ablauf im Gesamtsystem

  1. Maven test/verify fuehrt Architecture Tests aus.
  2. LayerRulesTest prueft Abhaengigkeitsrichtung.
  3. PatternMarkerTest prueft, ob wichtige Codebereiche dokumentiert sind.

Wichtige Klassen und Dateien

  • LayerRulesTest
  • PatternMarkerTest

Verwendete Entwurfsmuster

  • Fitness Function
  • Architecture Test
  • Build Gate

Typischer Einstieg beim Lesen

  1. Zuerst dieses README lesen.
  2. Dann pom.xml ansehen: Welche Module werden benoetigt?
  3. Danach die genannten Klassen oeffnen.
  4. Am Ende ../../docs/design-patterns.md lesen und die // PATTERN:-Marker im Code vergleichen.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

runnable-smokeTesting

runnable-smoke

Dieses Modul macht den Workspace sofort ausfuehrbar.

Start

mvn -q -pl runnable-smoke -am package exec:java

Zweck

Der Smoke-Run fuehrt einen kompakten Enterprise-Ablauf aus: Order validieren, Inventory reservieren, Payment autorisieren, Outbox-Event erzeugen und Deployment-Bereitschaft pruefen.

Entwurfsmuster

  • Command: fachliche Schritte als ausfuehrbare Aktionen.
  • Pipeline: Schritte laufen in stabiler Reihenfolge.
  • Result Object: klare Rueckgabe ohne versteckte Seiteneffekte.

Weitere Module 5

v01-reactor-baselineWeitere Module

Deep Dive 01: v01-reactor-baseline

Fokus: Reactor, Parent POM, BOM, Modulgrenzen.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

v02-ddd-hexagonalWeitere Module

Deep Dive 02: v02-ddd-hexagonal

Fokus: Aggregate, Ports, Application Service, Adapter.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

v03-persistence-transactionsWeitere Module

Deep Dive 03: v03-persistence-transactions

Fokus: JPA Adapter, Unit of Work, Repository, Mapper.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

v06-quarkus-jakartaWeitere Module

Deep Dive 06: v06-quarkus-jakarta

Fokus: Quarkus, Jakarta REST, CDI.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

v08-enterprise-referenceWeitere Module

Deep Dive 08: v08-enterprise-reference

Fokus: Endzustand als Referenzplattform.

Lernziel

Diese Version ist kein Archiv, sondern eine bewusst lesbare Lernstufe. Sie zeigt, welcher Architekturbaustein im Master-Workspace hinzukommt und welche Design Patterns dadurch sichtbar werden.

Muster

  • Fachliche Modulgrenzen
  • Ports and Adapters
  • Repository und Mapper
  • Domain Event und Outbox
  • Strategy, Policy, Specification, Factory

Arbeitsauftrag

cd ../../mvn-ws-sb3-quarkus-jpa-kafka
mvn -pl order-domain,order-application test

Reflexion

Pruefe in dieser Version, ob die Abhaengigkeiten nach innen zeigen und ob technische Frameworks aus der Domain fernbleiben.

Bezug zu Projektbeschreibungen

Fuer den praktischen Ablauf im grossen Maven-Workspace siehe ../../mvn-ws-sb3-quarkus-jpa-kafka/PROJECTS.md. Die einzelnen Maven-Module enthalten eigene README-Dateien mit Zweck, Ablauf, wichtigen Klassen und Entwurfsmustern.

Stand 2026-07-07. Markdown und HTML synchron erzeugt.

Projektübersicht · Aydin Modern Enterprise Maven Master 2

Aydin Modern Enterprise Maven Master 2

Umfangreicheres Master-Paket fuer moderne Enterprise-Maven-Multi-Module-Projekte.

Oeffnen

1. ZIP entpacken.

2. index.html im Root oeffnen.

3. Fuer Code: Ordner mvn-ws-sb3-quarkus-jpa-kafka in IntelliJ oder VS Code oeffnen.

4. Maven-Build lokal mit Internet ausfuehren.

Inhalt

  • Maven-Multi-Module-Workspace
  • Deep-Dive-Versionen V01 bis V08
  • Markdown und HTML je Dokument
  • Desktop- und iPhone/Safari-HTML
  • PDF mit klickbarem Inhaltsverzeichnis
  • SVG-Erklaerbilder
  • Pruefberichte
  • Prompts

Runnable Smoke-Test

Siehe RUNNABLE.md und RUNNABLE.html. Jeder Workspace enthaelt ein Modul runnable-smoke mit Startskripten.

Start und Runtime · Master 2 runnable machen

Master 2 runnable machen

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

Startbefehle

  • mvn-ws-sb3-quarkus-jpa-kafka: cd mvn-ws-sb3-quarkus-jpa-kafka && mvn -q -pl runnable-smoke -am package exec:java
  • Windows: run-smoke.bat im Workspace starten.
  • Linux/macOS: ./run-smoke.sh im Workspace starten.

Was der Smoke-Run tut

Der Ablauf simuliert eine echte Enterprise-Kette:

  • Bestellung validieren
  • Bestand reservieren
  • Zahlung autorisieren
  • Outbox-Event erzeugen
  • Deployment-Bereitschaft pruefen

Warum Smoke-Runner und nicht alle externen Systeme starten?

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.

Empfohlene Reihenfolge

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.

⌂ Cockpit