Master 6 - Enterprise Maven Deep Dive

Mehr Java-Code, mehr Funktionalitaet, OpenShift, hybride Zielumgebungen und viele kompakte SVG-Erklaerbilder.

Fachlicher Ablauf

Checkout startet einen Use Case, prueft Fachregeln, erzeugt Domain Events, schreibt Outbox, startet Sagas, aktualisiert CQRS Read Models und laeuft in OpenShift als API, Worker oder Batch.

Kompakte SVGs

Systemkontext: Web, API, Worker, Events, Datenbanken
Hexagonal: Domain innen, Ports, Adapter aussen
Checkout Ablauf: Warenkorb, Preis, Bestand, Zahlung, Versand
Outbox: Transaktion, Outbox-Tabelle, Publisher, Broker
Saga: Reservieren, Bezahlen, Versenden, Kompensieren
CQRS: Commands schreiben, Events projizieren, Queries lesen
OpenShift Runtime: Route, Service, Pods, Config, Secret
Pipeline: Build, Test, Scan, Image, Deploy
GitOps: Git, Argo CD, Cluster Sync
Observability: Logs, Metrics, Traces, Alerts

Module

shared-kernel

Gemeinsame Value Objects, Fehler, Ergebnis-Typen und technische Primitive.

Modulbeschreibung

money-kernel

Geld, Währung, Rundungsregeln und fachliche Preisberechnung.

Modulbeschreibung

customer-domain

Kunden, Adressen, Segmente, Sperren und Bonitätsstatus.

Modulbeschreibung

catalog-domain

Produktkatalog, Varianten, Aktivierung und Angebotsdaten.

Modulbeschreibung

pricing-domain

Preisregeln, Rabatte, Steuerberechnung und Angebotsbewertung.

Modulbeschreibung

inventory-domain

Reservierung, Verfügbarkeitsprüfung und Lagerbewegungen.

Modulbeschreibung

order-domain

Bestellung als Aggregate Root mit Validierung, Statuswechseln und Events.

Modulbeschreibung

payment-domain

Zahlungsautorisierung, Zahlungsstatus und Fraud-Prüfung.

Modulbeschreibung

billing-domain

Rechnung, Rechnungslauf, Storno und Zahlungsabgleich.

Modulbeschreibung

shipping-domain

Versandauftrag, Paketstatus, Carrier-Auswahl und Tracking.

Modulbeschreibung

returns-domain

Retourenfreigabe, Gutschrift und Warenrücknahme.

Modulbeschreibung

notification-domain

Benachrichtigungskanäle, Templates und Zustellstatus.

Modulbeschreibung

contract-domain

API- und Event-Verträge als stabile Schnittstellen.

Modulbeschreibung

workflow-domain

Geschäftsprozesse über mehrere Services mit Zustandsautomat.

Modulbeschreibung

policy-domain

Fachliche Policies für Limits, Freigaben und Sicherheitsregeln.

Modulbeschreibung

order-application

Use Cases für Bestellanlage, Reservierung, Zahlung und Versand.

Modulbeschreibung

checkout-application

Checkout-Orchestrierung mit fachlichem Ablauf und Kompensation.

Modulbeschreibung

billing-application

Rechnungserstellung, Buchungsvorbereitung und Audit Trail.

Modulbeschreibung

customer-application

Kundenpflege, Segmentierung und Datenschutz-Anfragen.

Modulbeschreibung

fulfillment-application

Erfüllungskette von Lager über Versand bis Zustellung.

Modulbeschreibung

returns-application

Retourenprozess von Antrag bis Gutschrift.

Modulbeschreibung

admin-application

Admin-Use-Cases für Betrieb, Korrektur und manuelle Freigabe.

Modulbeschreibung

reporting-application

Read-Model-Abfragen, Kennzahlen und operative Reports.

Modulbeschreibung

event-bus-core

Interner Event Bus mit Handler Registry und Dispatching.

Modulbeschreibung

outbox-core

Transactional Outbox, Retry, Idempotenz und Publisher-Abstraktion.

Modulbeschreibung

saga-core

Saga-Laufzeit, Kompensationen und Prozessprotokoll.

Modulbeschreibung

cqrs-core

Command/Query-Trennung, Projektoren und Read Model Aktualisierung.

Modulbeschreibung

idempotency-core

Idempotency Keys, Replay-Schutz und deduplizierte Verarbeitung.

Modulbeschreibung

resilience-core

Retry, Circuit Breaker, Timeout und Bulkhead als reine Java-Modelle.

Modulbeschreibung

security-core

Rollen, Berechtigungen, Policy Decision und Audit-Kontext.

Modulbeschreibung

observability-core

Metriken, Traces, strukturierte Logs und Korrelations-IDs.

Modulbeschreibung

configuration-core

Konfigurationsquellen, Profile und sichere Defaults.

Modulbeschreibung

testing-fixtures

Testdaten-Builder, Szenario-Mutterklassen und Fake-Adapter.

Modulbeschreibung

adapter-rest-api

REST API Adapter für Checkout, Orders und Admin-Aktionen.

Modulbeschreibung

adapter-graphql-api

GraphQL-ähnlicher Query Adapter für Read Models.

Modulbeschreibung

adapter-kafka

Kafka/Event-Streaming Adapter mit Topic-Routing.

Modulbeschreibung

adapter-amq-streams

OpenShift AMQ Streams Adapter für Cluster-Betrieb.

Modulbeschreibung

adapter-aws-sqs

AWS SQS Adapter für asynchrone Queue-Kommunikation.

Modulbeschreibung

adapter-aws-sns

AWS SNS Adapter für Fanout und Notifications.

Modulbeschreibung

adapter-aws-s3

S3-kompatibler Object Storage Adapter für Belege.

Modulbeschreibung

adapter-rds-postgres

PostgreSQL/RDS Adapter als Repository-Simulation.

Modulbeschreibung

adapter-oracle-onprem

Oracle On-Prem Adapter für Legacy Tabellen.

Modulbeschreibung

adapter-ibm-mq

IBM MQ Adapter für Enterprise Messaging.

Modulbeschreibung

adapter-soap-legacy

SOAP Legacy Adapter mit Anti-Corruption Layer.

Modulbeschreibung

adapter-sftp-hosting

SFTP Dedicated Hosting Adapter für Dateiaustausch.

Modulbeschreibung

adapter-filesystem-baremetal

Bare-Metal Filesystem Adapter für lokale Schnittstellen.

Modulbeschreibung

adapter-cache-redis

Redis Cache Adapter für Sessions und Lookups.

Modulbeschreibung

adapter-email

E-Mail Adapter für Benachrichtigungen.

Modulbeschreibung

adapter-openshift-config

OpenShift ConfigMap/Secret Adapter als Port-Implementierung.

Modulbeschreibung

adapter-openshift-route

OpenShift Route/Ingress Adapter für externe Erreichbarkeit.

Modulbeschreibung

adapter-openshift-storage

OpenShift Storage Adapter für PVC und Objektdaten.

Modulbeschreibung

runtime-api-service

Startbarer API-Service mit Ablauf-Simulation.

Modulbeschreibung

runtime-worker-service

Worker-Service für Outbox, Events und Retry-Verarbeitung.

Modulbeschreibung

runtime-batch-service

Batch-Service für Rechnungsläufe und Datenabgleich.

Modulbeschreibung

deployment-openshift-kustomize

OpenShift Kustomize-Manifeste für mehrere Umgebungen.

Modulbeschreibung

deployment-openshift-helm

Helm-ähnliche Struktur mit Werten und Templates.

Modulbeschreibung

deployment-openshift-gitops

GitOps App-of-Apps Beispiel für Argo CD.

Modulbeschreibung

deployment-openshift-pipelines

Pipeline-Beispiele für Build, Test, Image und Deploy.

Modulbeschreibung

deployment-aws-rosa

ROSA/AWS Zielbild mit Cloud-nativen Diensten.

Modulbeschreibung

deployment-vm-okd

OKD/VM Zielbild für selbst betriebene Cluster.

Modulbeschreibung

deployment-baremetal

Bare Metal Zielbild mit Storage, Netzwerk und Operations.

Modulbeschreibung

deployment-dedicated-hosting

Dedicated/VM Hosting Zielbild für hybride Übergänge.

Modulbeschreibung

operations-runbooks

Runbooks für Incident, Rollback, Scaling und Troubleshooting.

Modulbeschreibung

chaos-and-failure-lab

Fehlerfälle, Chaos-Szenarien und Resilienz-Nachweise.

Modulbeschreibung

spring-boot-api

Spring Boot REST API fuer Orders, Checkout, Validation und Fehlerantworten.

Modulbeschreibung

spring-boot-worker

Spring Boot Worker fuer Outbox, Retry und asynchrone Jobs.

Modulbeschreibung

spring-data-jpa-adapter

Spring Data JPA Adapter mit Repository-Abstraktion und Mapping.

Modulbeschreibung

spring-security-resource-server

Spring Security Resource Server mit Rollen- und Policy-Pruefung.

Modulbeschreibung

spring-observability-actuator

Spring Actuator, Health, Metrics und Trace-Kontext.

Modulbeschreibung

spring-modulith-events

Spring Modulith-nahe Event-Publikation und Modulgrenzen.

Modulbeschreibung

spring-integration-flow

Spring Integration Flow fuer Datei, Queue und HTTP-Kopplung.

Modulbeschreibung

spring-cloud-gateway-edge

Spring Cloud Gateway Edge Layer fuer Routing, Filter und Rate Limits.

Modulbeschreibung

jakarta-rest-api

Jakarta RESTful Web Services API fuer portable HTTP Endpunkte.

Modulbeschreibung

jakarta-cdi-application

Jakarta CDI Application Services mit Producer, Qualifier und Events.

Modulbeschreibung

jakarta-persistence-adapter

Jakarta Persistence Adapter mit Entity, Repository und Unit-of-Work.

Modulbeschreibung

jakarta-messaging-listener

Jakarta Messaging Listener fuer JMS/IBM MQ-kompatible Events.

Modulbeschreibung

jakarta-batch-jobs

Jakarta Batch Job-Struktur fuer Rechnungslaeufe und Importe.

Modulbeschreibung

jakarta-validation-module

Jakarta Validation Regeln fuer Commands, DTOs und Grenzen.

Modulbeschreibung

jakarta-security-module

Jakarta Security Rollen, Identity Store und Zugriffsmuster.

Modulbeschreibung

jakarta-websocket-notifications

Jakarta WebSocket Notifications fuer Live-Status und Betriebscockpit.

Modulbeschreibung

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

Spring/Jakarta

Technischer Fokus

Wie moderne Java-Frameworks in der Master-Reihe eingesetzt werden.

Warum wichtig?

Spring APIs, Worker, Data, Security, Observability und Jakarta-Vergleich.

Lernziel

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

Fachliches Mini-Szenario

Szenario: Dieser Master zeigt einen fokussierten Lernabschnitt: Spring APIs, Worker, Data, Security, Observability und Jakarta-Vergleich. 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

81 Module10 KategorienInhalte vollständig übernommen

API & Application 16

admin-applicationAPI & Application
Verantwortung

Admin-Use-Cases für Betrieb, Korrektur und manuelle Freigabe.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

billing-applicationAPI & Application
Verantwortung

Rechnungserstellung, Buchungsvorbereitung und Audit Trail.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

checkout-applicationAPI & Application
Verantwortung

Checkout-Orchestrierung mit fachlichem Ablauf und Kompensation.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

customer-applicationAPI & Application
Verantwortung

Kundenpflege, Segmentierung und Datenschutz-Anfragen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

fulfillment-applicationAPI & Application
Verantwortung

Erfüllungskette von Lager über Versand bis Zustellung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

jakarta-cdi-applicationAPI & Application

Jakarta CDI Application Services mit Producer, Qualifier und Events.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

jakarta-rest-apiAPI & Application

Jakarta RESTful Web Services API fuer portable HTTP Endpunkte.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

jakarta-websocket-notificationsAPI & Application

Jakarta WebSocket Notifications fuer Live-Status und Betriebscockpit.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

order-applicationAPI & Application
Verantwortung

Use Cases für Bestellanlage, Reservierung, Zahlung und Versand.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

reporting-applicationAPI & Application
Verantwortung

Read-Model-Abfragen, Kennzahlen und operative Reports.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

returns-applicationAPI & Application
Verantwortung

Retourenprozess von Antrag bis Gutschrift.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

runtime-api-serviceAPI & Application
Verantwortung

Startbarer API-Service mit Ablauf-Simulation.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

runtime-batch-serviceAPI & Application
Verantwortung

Batch-Service für Rechnungsläufe und Datenabgleich.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

runtime-worker-serviceAPI & Application
Verantwortung

Worker-Service für Outbox, Events und Retry-Verarbeitung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

spring-boot-apiAPI & Application

Spring Boot REST API fuer Orders, Checkout, Validation und Fehlerantworten.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

spring-boot-workerAPI & Application

Spring Boot Worker fuer Outbox, Retry und asynchrone Jobs.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

Adapter & Integration 12

adapter-aws-snsAdapter & Integration
Verantwortung

AWS SNS Adapter für Fanout und Notifications.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-cache-redisAdapter & Integration
Verantwortung

Redis Cache Adapter für Sessions und Lookups.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-emailAdapter & Integration
Verantwortung

E-Mail Adapter für Benachrichtigungen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-filesystem-baremetalAdapter & Integration
Verantwortung

Bare-Metal Filesystem Adapter für lokale Schnittstellen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-graphql-apiAdapter & Integration
Verantwortung

GraphQL-ähnlicher Query Adapter für Read Models.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-rest-apiAdapter & Integration
Verantwortung

REST API Adapter für Checkout, Orders und Admin-Aktionen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-sftp-hostingAdapter & Integration
Verantwortung

SFTP Dedicated Hosting Adapter für Dateiaustausch.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-soap-legacyAdapter & Integration
Verantwortung

SOAP Legacy Adapter mit Anti-Corruption Layer.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

jakarta-persistence-adapterAdapter & Integration

Jakarta Persistence Adapter mit Entity, Repository und Unit-of-Work.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

spring-cloud-gateway-edgeAdapter & Integration

Spring Cloud Gateway Edge Layer fuer Routing, Filter und Rate Limits.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

spring-data-jpa-adapterAdapter & Integration

Spring Data JPA Adapter mit Repository-Abstraktion und Mapping.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

spring-integration-flowAdapter & Integration

Spring Integration Flow fuer Datei, Queue und HTTP-Kopplung.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

Daten & Storage 3

adapter-aws-s3Daten & Storage
Verantwortung

S3-kompatibler Object Storage Adapter für Belege.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-oracle-onpremDaten & Storage
Verantwortung

Oracle On-Prem Adapter für Legacy Tabellen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-rds-postgresDaten & Storage
Verantwortung

PostgreSQL/RDS Adapter als Repository-Simulation.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

Deployment 11

adapter-openshift-configDeployment
Verantwortung

OpenShift ConfigMap/Secret Adapter als Port-Implementierung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-openshift-routeDeployment
Verantwortung

OpenShift Route/Ingress Adapter für externe Erreichbarkeit.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-openshift-storageDeployment
Verantwortung

OpenShift Storage Adapter für PVC und Objektdaten.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-aws-rosaDeployment
Verantwortung

ROSA/AWS Zielbild mit Cloud-nativen Diensten.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-baremetalDeployment
Verantwortung

Bare Metal Zielbild mit Storage, Netzwerk und Operations.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-dedicated-hostingDeployment
Verantwortung

Dedicated/VM Hosting Zielbild für hybride Übergänge.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-openshift-gitopsDeployment
Verantwortung

GitOps App-of-Apps Beispiel für Argo CD.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-openshift-helmDeployment
Verantwortung

Helm-ähnliche Struktur mit Werten und Templates.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-openshift-kustomizeDeployment
Verantwortung

OpenShift Kustomize-Manifeste für mehrere Umgebungen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-openshift-pipelinesDeployment
Verantwortung

Pipeline-Beispiele für Build, Test, Image und Deploy.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

deployment-vm-okdDeployment
Verantwortung

OKD/VM Zielbild für selbst betriebene Cluster.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

Domain 16

billing-domainDomain
Verantwortung

Rechnung, Rechnungslauf, Storno und Zahlungsabgleich.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

catalog-domainDomain
Verantwortung

Produktkatalog, Varianten, Aktivierung und Angebotsdaten.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

configuration-coreDomain
Verantwortung

Konfigurationsquellen, Profile und sichere Defaults.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

cqrs-coreDomain
Verantwortung

Command/Query-Trennung, Projektoren und Read Model Aktualisierung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

customer-domainDomain
Verantwortung

Kunden, Adressen, Segmente, Sperren und Bonitätsstatus.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

idempotency-coreDomain
Verantwortung

Idempotency Keys, Replay-Schutz und deduplizierte Verarbeitung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

inventory-domainDomain
Verantwortung

Reservierung, Verfügbarkeitsprüfung und Lagerbewegungen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

notification-domainDomain
Verantwortung

Benachrichtigungskanäle, Templates und Zustellstatus.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

order-domainDomain
Verantwortung

Bestellung als Aggregate Root mit Validierung, Statuswechseln und Events.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

payment-domainDomain
Verantwortung

Zahlungsautorisierung, Zahlungsstatus und Fraud-Prüfung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

policy-domainDomain
Verantwortung

Fachliche Policies für Limits, Freigaben und Sicherheitsregeln.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

pricing-domainDomain
Verantwortung

Preisregeln, Rabatte, Steuerberechnung und Angebotsbewertung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

resilience-coreDomain
Verantwortung

Retry, Circuit Breaker, Timeout und Bulkhead als reine Java-Modelle.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

returns-domainDomain
Verantwortung

Retourenfreigabe, Gutschrift und Warenrücknahme.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

shipping-domainDomain
Verantwortung

Versandauftrag, Paketstatus, Carrier-Auswahl und Tracking.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

workflow-domainDomain
Verantwortung

Geschäftsprozesse über mehrere Services mit Zustandsautomat.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

Messaging 9

adapter-amq-streamsMessaging
Verantwortung

OpenShift AMQ Streams Adapter für Cluster-Betrieb.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-aws-sqsMessaging
Verantwortung

AWS SQS Adapter für asynchrone Queue-Kommunikation.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-ibm-mqMessaging
Verantwortung

IBM MQ Adapter für Enterprise Messaging.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

adapter-kafkaMessaging
Verantwortung

Kafka/Event-Streaming Adapter mit Topic-Routing.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

event-bus-coreMessaging
Verantwortung

Interner Event Bus mit Handler Registry und Dispatching.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

jakarta-messaging-listenerMessaging

Jakarta Messaging Listener fuer JMS/IBM MQ-kompatible Events.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

outbox-coreMessaging
Verantwortung

Transactional Outbox, Retry, Idempotenz und Publisher-Abstraktion.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

saga-coreMessaging
Verantwortung

Saga-Laufzeit, Kompensationen und Prozessprotokoll.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

spring-modulith-eventsMessaging

Spring Modulith-nahe Event-Publikation und Modulgrenzen.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

Observability 2

observability-coreObservability
Verantwortung

Metriken, Traces, strukturierte Logs und Korrelations-IDs.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

spring-observability-actuatorObservability

Spring Actuator, Health, Metrics und Trace-Kontext.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

Security 3

jakarta-security-moduleSecurity

Jakarta Security Rollen, Identity Store und Zugriffsmuster.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

security-coreSecurity
Verantwortung

Rollen, Berechtigungen, Policy Decision und Audit-Kontext.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

spring-security-resource-serverSecurity

Spring Security Resource Server mit Rollen- und Policy-Pruefung.

Verantwortung

Dieses Modul erweitert Master 6 um Spring Boot / Spring Framework-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

Testing 3

contract-domainTesting
Verantwortung

API- und Event-Verträge als stabile Schnittstellen.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

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.
testing-fixturesTesting
Verantwortung

Testdaten-Builder, Szenario-Mutterklassen und Fake-Adapter.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

Weitere Module 6

chaos-and-failure-labWeitere Module
Verantwortung

Fehlerfälle, Chaos-Szenarien und Resilienz-Nachweise.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

jakarta-batch-jobsWeitere Module

Jakarta Batch Job-Struktur fuer Rechnungslaeufe und Importe.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

jakarta-validation-moduleWeitere Module

Jakarta Validation Regeln fuer Commands, DTOs und Grenzen.

Verantwortung

Dieses Modul erweitert Master 6 um Jakarta EE-Funktionalitaet. Es zeigt, wie die fachliche Plattform aus Domain, Application, Adapter und Deployment in ein konkretes Enterprise-Framework eingebettet wird.

Fachlicher Ablauf

1. HTTP/API oder Messaging Eingang nimmt ein DTO entgegen.

2. Controller/Resource uebersetzt in ein Command.

3. Use Case oder CDI Service validiert, fuehrt den Ablauf aus und speichert einen Zwischenstand.

4. Event/Result wird erzeugt.

5. Antwort, Metrik oder Folgeereignis geht nach aussen.

Architekturbausteine

• Adapter: Framework-Schicht bleibt duenn und trennt sich vom Kern.

• DTO: stabile externe Schnittstellenobjekte.

• Application Service: fachlicher Ablauf als eigene Klasse.

• Repository: Persistenz abstrahiert.

• Domain Event: Statuswechsel fachlich sichtbar.

• Dependency Injection: Framework erzeugt und verdrahtet Komponenten.

money-kernelWeitere Module
Verantwortung

Geld, Währung, Rundungsregeln und fachliche Preisberechnung.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

operations-runbooksWeitere Module
Verantwortung

Runbooks für Incident, Rollback, Scaling und Troubleshooting.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

shared-kernelWeitere Module
Verantwortung

Gemeinsame Value Objects, Fehler, Ergebnis-Typen und technische Primitive.

Architekturbausteine

Die Java-Dateien markieren Muster direkt mit // PATTERN:. Typische Muster in diesem Modul sind Port and Adapter, Factory, Strategy, Specification, Aggregate Root, Command, Composite oder Facade.

Lernziel

Das Modul zeigt, wie ein Enterprise-Baustein klein, testbar und austauschbar bleibt, obwohl die Gesamtlandschaft verteilt ist.

Projektübersicht · Master 6 - Moderne Enterprise Maven Plattform mit viel Java-Funktionalitaet

Master 6 - Moderne Enterprise Maven Plattform mit viel Java-Funktionalitaet

Master 6 steigert die bisherigen Master um deutlich mehr lauffaehig gedachte Java-Bausteine, fachliche Abläufe, OpenShift-nahe Deployment-Strukturen und viele kompakte SVG-Erklaerbilder.

Inhalt

  • 64 Maven-Module mit Parent-POM
  • Mehr Java-Code pro Fach-, Applikations-, Plattform- und Adaptermodul
  • Fachliche Abläufe fuer Checkout, Billing, Fulfillment, Returns, Events, Sagas und Betrieb
  • OpenShift, AWS/ROSA, VM/OKD, Bare Metal, On-Premise und Dedicated Hosting als Zielbilder
  • Entwurfsmuster direkt im Code mit // PATTERN: markiert
  • Markdown-Dateien immer auch als HTML
  • Kompakte SVGs als visuelle Lernkarten

Start

1. ZIP entpacken.

2. index.html im Root öffnen.

3. Code in mvn-ws-sb3-jee11 mit IntelliJ oder VS Code öffnen.

4. Optional lokal bauen: mvn -q -DskipTests package.

Fachlicher Demo-Ablauf

Checkout nimmt einen Business Key an, validiert Regeln, erzeugt Status, publiziert Events, schreibt Outbox-Einträge, startet Saga-Schritte und aktualisiert CQRS Read Models. Adapter übersetzen dieses Kernmodell in REST, Kafka, SQS, S3, Oracle, IBM MQ, SOAP, SFTP, OpenShift Config und Storage.

Spring und Jakarta Deep Dive

Master 6.1 ergänzt konkrete Spring-Boot- und Jakarta-EE-Module inklusive Code, Ablaufbeschreibung, Entwurfsmuster-Kommentaren und SVG-Erklärbildern.

Runnable Smoke-Test

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

Start und Runtime · Master 6 runnable machen

Master 6 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-jee11: cd mvn-ws-sb3-jee11 && 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