Modulübersicht

SB3 QUARKUS JPA KAFKA Modularchitektur – Modulübersicht

Die Unter­module sind nach Verantwortung geordnet. Öffne nur die Karte, deren fachliche oder technische Aufgabe du untersuchen möchtest.

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.

⌂ Cockpit