Master 3 - Moderne Enterprise Maven Plattform

Komplexer Maven-Multi-Module-Workspace mit fachlichen Slices, technischen Adaptern, Outbox, Saga, CQRS, Security, Observability und OpenShift.

27 Maven-ModuleDDDHexagonalOutboxSagaCQRS

Öffnen

README · Projektbeschreibungen · Entwurfsmuster · Architektur · Lehrbuch · Prüfbericht

Architekturdiagramm

Module

architecture-bom

BOM

Versionen und DependencyManagement, damit alle Module konsistente Abhängigkeiten nutzen.

Ablauf: Wird von allen fachlichen Modulen importiert.

Pattern: Facade, Dependency Management

Modul README

shared-kernel

Shared Kernel

Gemeinsame fachliche Wertobjekte, IDs, Domain Events und Fehlerklassen.

Ablauf: Alle Domains hängen nur kontrolliert davon ab.

Pattern: Value Object, Domain Event

Modul README

common-test

Test Utilities

Testdatenbauer, Contract-Test-Basis, Assert-Helfer.

Ablauf: Wird nur im Test-Scope verwendet.

Pattern: Test Data Builder, Object Mother

Modul README

domain-order

Order Domain

Bestellung als Aggregate Root mit OrderLine, Pricing-Regeln und Statusübergängen.

Ablauf: Use Case legt Bestellung an, Domain prüft Invarianten, Event wird erzeugt.

Pattern: Aggregate Root, Specification, Factory

Modul README

domain-payment

Payment Domain

Zahlungsautorisierung, Capture, Refund und Zahlungsstatus.

Ablauf: Saga startet Autorisierung und kompensiert bei Lieferproblem.

Pattern: State, Strategy, Domain Service

Modul README

domain-inventory

Inventory Domain

Reservierung, Freigabe und Bestandsbuchung.

Ablauf: OrderCreated reserviert Bestand; bei Fehler Compensation.

Pattern: Repository, Aggregate Root

Modul README

domain-customer

Customer Domain

Kundenprofil, Kreditlimit und Risikoindikator.

Ablauf: Use Case fragt Kreditlimit ab, bevor Bestellung bestätigt wird.

Pattern: Policy, Specification

Modul README

domain-catalog

Catalog Domain

Produktkatalog, Preislisten, Produktverfügbarkeit.

Ablauf: Order Use Case prüft Artikel und Preise.

Pattern: Read Model, Adapter

Modul README

application-order

Order Application

Use Cases für OrderPlacement, Confirmation und Cancellation.

Ablauf: Koordiniert Ports, startet Domainlogik, schreibt Outbox.

Pattern: Use Case, Port, Command Handler

Modul README

application-payment

Payment Application

Use Cases für Payment Authorization und Capture.

Ablauf: Wird durch Saga oder REST Adapter aufgerufen.

Pattern: Command Handler, Adapter

Modul README

application-inventory

Inventory Application

Use Cases für Inventory Reservation und Release.

Ablauf: Verarbeitet Events und ruft Domain-Service auf.

Pattern: Application Service, Transaction Script bewusst begrenzt

Modul README

application-customer

Customer Application

Use Cases für Kundenprüfung und Segmentierung.

Ablauf: REST oder Saga fragt CustomerDecision ab.

Pattern: Facade, Policy

Modul README

adapter-rest

REST Adapter

HTTP API, DTO Mapping, Controller, Fehlerantworten.

Ablauf: Nimmt Request an, validiert oberflächlich, ruft Use Case Port auf.

Pattern: Adapter, DTO, Mapper

Modul README

adapter-persistence-jpa

JPA Persistence Adapter

Repository-Implementierungen, Entity Mapping, Outbox Tabelle.

Ablauf: Speichert Aggregates und Outbox in derselben Transaktion.

Pattern: Repository, Data Mapper, Unit of Work

Modul README

adapter-messaging-kafka

Kafka Messaging Adapter

Event Publishing und Event Listener für Integrationsereignisse.

Ablauf: Outbox Publisher sendet Events idempotent an Kafka.

Pattern: Publisher, Consumer, Idempotent Receiver

Modul README

adapter-legacy-soap

Legacy SOAP Adapter

Anti-Corruption Layer für alte SOAP Partner oder ERP Services.

Ablauf: DTO wird in Legacy Request übersetzt, Fehler werden normalisiert.

Pattern: Anti-Corruption Layer, Adapter

Modul README

adapter-batch

Batch Adapter

Import/Export Jobs, Reconciliation und Recovery-Läufe.

Ablauf: Periodischer Job liest offene Outbox/Saga Fälle.

Pattern: Template Method, Chunk Processor

Modul README

orchestration-saga

Saga Orchestration

Langlaufende Order-to-Cash Prozesssteuerung mit Compensation.

Ablauf: OrderPlaced -> Reserve -> Authorize -> Confirm oder kompensieren.

Pattern: Saga, Process Manager, State Machine

Modul README

outbox-engine

Outbox Engine

Transaktionaler Outbox Publisher mit Retry, Locking und Idempotenz.

Ablauf: Liest Pending Events, published, markiert abgeschlossen.

Pattern: Transactional Outbox, Retry, Idempotency

Modul README

query-cqrs-readmodel

CQRS Read Models

Projektierte Lesemodelle für UI und Reporting.

Ablauf: Events aktualisieren optimierte Tabellen oder Views.

Pattern: CQRS, Projection

Modul README

security-module

Security

Rollen, Berechtigungen, Token Claims, Method Policies.

Ablauf: REST Adapter prüft Claims; Use Case prüft fachliche Rechte.

Pattern: Policy, Guard, Chain of Responsibility

Modul README

observability-module

Observability

Tracing, strukturierte Logs, Metriken und Audit Events.

Ablauf: Jeder Use Case erzeugt Correlation-ID und Business Audit.

Pattern: Observer, Decorator

Modul README

api-gateway-bff

Gateway/BFF

Zusammengesetzte API für Web/Mobile Clients.

Ablauf: Ruft mehrere Use Cases/Read Models zusammen.

Pattern: Facade, API Gateway

Modul README

contract-tests

Contract Tests

Consumer/Provider Verträge für REST und Events.

Ablauf: Sichert Adapter-Kompatibilität zwischen Modulen.

Pattern: Contract Test, Test Pyramid

Modul README

architecture-tests

Architecture Tests

ArchUnit-Regeln für Layering, Dependency Direction und Naming.

Ablauf: Build bricht bei verbotenen Abhängigkeiten.

Pattern: Architecture Fitness Function

Modul README

integration-tests

Integration Tests

Testcontainers-orientierte End-to-End-Flows.

Ablauf: Startet Adapter und prüft Order-to-Cash.

Pattern: Test Harness, Fixture

Modul README

deploy-openshift

Deployment

Kubernetes/OpenShift Manifeste, Helm/Kustomize Beispiel und Runbook.

Ablauf: Build erzeugt Images, Deployment rollt Services aus.

Pattern: Infrastructure as Code, Blue-Green

Modul README

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

Distributed Systems

Technischer Fokus

Wie Modularisierung in verteilte Architektur überführt wird.

Warum wichtig?

Service-Schnitt, verteilte Grenzen, Integration und DDD-Slices.

Lernziel

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

Fachliches Mini-Szenario

Szenario: Dieser Master zeigt einen fokussierten Lernabschnitt: Service-Schnitt, verteilte Grenzen, Integration und DDD-Slices. 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

29 Module5 KategorienInhalte vollständig übernommen

Deployment 1

deploy-openshiftDeployment
← Index
Verantwortung

Kubernetes/OpenShift Manifeste, Helm/Kustomize Beispiel und Runbook.

Fachlicher Ablauf

Build erzeugt Images, Deployment rollt Services aus.

Wichtige Klassen

DeployOpenshiftComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DeployOpenshiftRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Infrastructure as Code, Blue-Green

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

Messaging 21

adapter-batchMessaging
← Index
Verantwortung

Import/Export Jobs, Reconciliation und Recovery-Läufe.

Fachlicher Ablauf

Periodischer Job liest offene Outbox/Saga Fälle.

Wichtige Klassen

AdapterBatchComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

AdapterBatchRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Template Method, Chunk Processor

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

adapter-legacy-soapMessaging
← Index
Verantwortung

Anti-Corruption Layer für alte SOAP Partner oder ERP Services.

Fachlicher Ablauf

DTO wird in Legacy Request übersetzt, Fehler werden normalisiert.

Wichtige Klassen

AdapterLegacySoapComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

AdapterLegacySoapRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Anti-Corruption Layer, Adapter

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

adapter-messaging-kafkaMessaging
← Index
Verantwortung

Event Publishing und Event Listener für Integrationsereignisse.

Fachlicher Ablauf

Outbox Publisher sendet Events idempotent an Kafka.

Wichtige Klassen

AdapterMessagingKafkaComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

AdapterMessagingKafkaRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Publisher, Consumer, Idempotent Receiver

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

adapter-persistence-jpaMessaging
← Index
Verantwortung

Repository-Implementierungen, Entity Mapping, Outbox Tabelle.

Fachlicher Ablauf

Speichert Aggregates und Outbox in derselben Transaktion.

Wichtige Klassen

AdapterPersistenceJpaComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

AdapterPersistenceJpaRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Repository, Data Mapper, Unit of Work

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

adapter-restMessaging
← Index
Verantwortung

HTTP API, DTO Mapping, Controller, Fehlerantworten.

Fachlicher Ablauf

Nimmt Request an, validiert oberflächlich, ruft Use Case Port auf.

Wichtige Klassen

AdapterRestComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

AdapterRestRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Adapter, DTO, Mapper

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

api-gateway-bffMessaging
← Index
Verantwortung

Zusammengesetzte API für Web/Mobile Clients.

Fachlicher Ablauf

Ruft mehrere Use Cases/Read Models zusammen.

Wichtige Klassen

ApiGatewayBffComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ApiGatewayBffRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Facade, API Gateway

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

application-customerMessaging
← Index
Verantwortung

Use Cases für Kundenprüfung und Segmentierung.

Fachlicher Ablauf

REST oder Saga fragt CustomerDecision ab.

Wichtige Klassen

ApplicationCustomerComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ApplicationCustomerRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Facade, Policy

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

application-inventoryMessaging
← Index
Verantwortung

Use Cases für Inventory Reservation und Release.

Fachlicher Ablauf

Verarbeitet Events und ruft Domain-Service auf.

Wichtige Klassen

ApplicationInventoryComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ApplicationInventoryRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Application Service, Transaction Script bewusst begrenzt

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

application-orderMessaging
← Index
Verantwortung

Use Cases für OrderPlacement, Confirmation und Cancellation.

Fachlicher Ablauf

Koordiniert Ports, startet Domainlogik, schreibt Outbox.

Wichtige Klassen

ApplicationOrderComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ApplicationOrderRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Use Case, Port, Command Handler

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

application-paymentMessaging
← Index
Verantwortung

Use Cases für Payment Authorization und Capture.

Fachlicher Ablauf

Wird durch Saga oder REST Adapter aufgerufen.

Wichtige Klassen

ApplicationPaymentComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ApplicationPaymentRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Command Handler, Adapter

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

architecture-bomMessaging
← Index
Verantwortung

Versionen und DependencyManagement, damit alle Module konsistente Abhängigkeiten nutzen.

Fachlicher Ablauf

Wird von allen fachlichen Modulen importiert.

Wichtige Klassen

ArchitectureBomComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ArchitectureBomRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Facade, Dependency Management

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

domain-catalogMessaging
← Index
Verantwortung

Produktkatalog, Preislisten, Produktverfügbarkeit.

Fachlicher Ablauf

Order Use Case prüft Artikel und Preise.

Wichtige Klassen

DomainCatalogComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DomainCatalogRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Read Model, Adapter

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

domain-customerMessaging
← Index
Verantwortung

Kundenprofil, Kreditlimit und Risikoindikator.

Fachlicher Ablauf

Use Case fragt Kreditlimit ab, bevor Bestellung bestätigt wird.

Wichtige Klassen

DomainCustomerComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DomainCustomerRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Policy, Specification

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

domain-inventoryMessaging
← Index
Verantwortung

Reservierung, Freigabe und Bestandsbuchung.

Fachlicher Ablauf

OrderCreated reserviert Bestand; bei Fehler Compensation.

Wichtige Klassen

DomainInventoryComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DomainInventoryRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Repository, Aggregate Root

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

domain-orderMessaging
← Index
Verantwortung

Bestellung als Aggregate Root mit OrderLine, Pricing-Regeln und Statusübergängen.

Fachlicher Ablauf

Use Case legt Bestellung an, Domain prüft Invarianten, Event wird erzeugt.

Wichtige Klassen

DomainOrderComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DomainOrderRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Aggregate Root, Specification, Factory

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

domain-paymentMessaging
← Index
Verantwortung

Zahlungsautorisierung, Capture, Refund und Zahlungsstatus.

Fachlicher Ablauf

Saga startet Autorisierung und kompensiert bei Lieferproblem.

Wichtige Klassen

DomainPaymentComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

DomainPaymentRepository: austauschbare Speicherabstraktion.

Architekturbausteine

State, Strategy, Domain Service

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

mvn-ws-ddd-hex-kafkaMessaging

Komplexer Enterprise-Lernworkspace mit 28 konzeptionellen Modulen. Ziel ist nicht nur lauffähiger Beispielcode, sondern Architekturverständnis: Modulgrenzen, Abhängigkeitsrichtung, Entwurfsmuster, Teststrategie und Betriebsfähigkeit.

Fachlicher Ablauf
  1. Parent und BOM prüfen.
  2. Shared Kernel verstehen.
  3. Domain-Module lesen: Order, Payment, Inventory, Customer, Catalog.
  4. Application-Use-Cases lesen.
  5. Adapter betrachten: REST, JPA, Kafka, SOAP, Batch.
  6. Outbox, Saga und CQRS als Deep Dive nachvollziehen.
  7. Security, Observability und OpenShift Deployment ergänzen.
  8. Architekturtests und Contract Tests ausführen.
Ausführen und prüfen
mvn -q -DskipTests package
mvn -q test

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.

orchestration-sagaMessaging
← Index
Verantwortung

Langlaufende Order-to-Cash Prozesssteuerung mit Compensation.

Fachlicher Ablauf

OrderPlaced -> Reserve -> Authorize -> Confirm oder kompensieren.

Wichtige Klassen

OrchestrationSagaComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

OrchestrationSagaRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Saga, Process Manager, State Machine

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

outbox-engineMessaging
← Index
Verantwortung

Transaktionaler Outbox Publisher mit Retry, Locking und Idempotenz.

Fachlicher Ablauf

Liest Pending Events, published, markiert abgeschlossen.

Wichtige Klassen

OutboxEngineComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

OutboxEngineRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Transactional Outbox, Retry, Idempotency

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

query-cqrs-readmodelMessaging
← Index
Verantwortung

Projektierte Lesemodelle für UI und Reporting.

Fachlicher Ablauf

Events aktualisieren optimierte Tabellen oder Views.

Wichtige Klassen

QueryCqrsReadmodelComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

QueryCqrsReadmodelRepository: austauschbare Speicherabstraktion.

Architekturbausteine

CQRS, Projection

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

shared-kernelMessaging
← Index
Verantwortung

Gemeinsame fachliche Wertobjekte, IDs, Domain Events und Fehlerklassen.

Fachlicher Ablauf

Alle Domains hängen nur kontrolliert davon ab.

Wichtige Klassen

SharedKernelComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

SharedKernelRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Value Object, Domain Event

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

Observability 1

observability-moduleObservability
← Index
Verantwortung

Tracing, strukturierte Logs, Metriken und Audit Events.

Fachlicher Ablauf

Jeder Use Case erzeugt Correlation-ID und Business Audit.

Wichtige Klassen

ObservabilityModuleComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ObservabilityModuleRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Observer, Decorator

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

Security 1

security-moduleSecurity
← Index
Verantwortung

Rollen, Berechtigungen, Token Claims, Method Policies.

Fachlicher Ablauf

REST Adapter prüft Claims; Use Case prüft fachliche Rechte.

Wichtige Klassen

SecurityModuleComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

SecurityModuleRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Policy, Guard, Chain of Responsibility

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

Testing 5

architecture-testsTesting
← Index
Verantwortung

ArchUnit-Regeln für Layering, Dependency Direction und Naming.

Fachlicher Ablauf

Build bricht bei verbotenen Abhängigkeiten.

Wichtige Klassen

ArchitectureTestsComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ArchitectureTestsRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Architecture Fitness Function

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

common-testTesting
← Index
Verantwortung

Testdatenbauer, Contract-Test-Basis, Assert-Helfer.

Fachlicher Ablauf

Wird nur im Test-Scope verwendet.

Wichtige Klassen

CommonTestComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

CommonTestRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Test Data Builder, Object Mother

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

contract-testsTesting
← Index
Verantwortung

Consumer/Provider Verträge für REST und Events.

Fachlicher Ablauf

Sichert Adapter-Kompatibilität zwischen Modulen.

Wichtige Klassen

ContractTestsComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

ContractTestsRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Contract Test, Test Pyramid

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

integration-testsTesting
← Index
Verantwortung

Testcontainers-orientierte End-to-End-Flows.

Fachlicher Ablauf

Startet Adapter und prüft Order-to-Cash.

Wichtige Klassen

IntegrationTestsComponent: kompakter Fach-/Adapterbaustein mit Pattern-Kommentaren.

IntegrationTestsRepository: austauschbare Speicherabstraktion.

Architekturbausteine

Test Harness, Fixture

Lokale Lernaufgabe

Lies zuerst die README, dann die Klassen, dann die Pattern-Kommentare. Ergänze danach einen Test, der eine fachliche Regel oder eine Adaptergrenze absichert.

Stand 2026-07-07

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.
Projektübersicht · Modern Enterprise Maven Master 3

Modern Enterprise Maven Master 3

Umfangreicher Master-Workspace mit 27 Maven-Modulen, DDD, Hexagonal Architecture, Outbox, Saga, CQRS, Security, Observability, Contract Tests und OpenShift-Hinweisen.

Öffne index.html im Root. Für Code: mvn-ws-ddd-hex-kafka in IntelliJ oder VS Code öffnen.

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: docs/ai-build-phases.html.

Runnable Smoke-Test

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

Start und Runtime · Master 3 runnable machen

Master 3 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-ddd-hex-kafka: cd mvn-ws-ddd-hex-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