Maven-Referenzprojekt

Order Platform Enterprise V6

Frameworkarmes Java-21-Lernprojekt mit 16 Maven-Modulen, einem konkreten Place-Order-Kernfluss und transparent dokumentiertem Unterschied zwischen Implementierung und Architekturzielbild.

Modulkarte des Maven-Referenzprojekts
16Maven-Module
7Java-Quelldateien
7Module mit Kerncode/Katalog
9Strukturmodule
21Java Release
0startbare Runtime-Module

1. Zweck

Das Projekt ist ein frameworkarmes Lern- und Architektur-Referenzprojekt. Es zeigt ein modulares Order-Platform-Zielbild, einen konkreten Place-Order-Kernfluss und mehrere Enterprise-Patterns. Die sieben vorhandenen Java-Quelldateien können gemeinsam mit javac --release 21 kompiliert werden.

Group IDat.aydinsude.training
Artifact IDorder-platform-enterprise-v6
Version1.0.0-SNAPSHOT
Packagingpom
Compiler Plugin3.14.1
EncodingUTF-8

2. Ehrlicher Reifegrad

Wichtig: Das Projekt ist eine Lern- und Architekturreferenz, keine vollständig startbare Produktionsanwendung.
  • 7 Module enthalten konkrete Java-Kernklassen oder einen Architekturregel-Katalog.
  • 9 Module sind Zielbild-/Strukturmodule mit POM und Dokumentation, jedoch ohne Java-Implementierung.
  • Die Child-POMs deklarieren aktuell keine Modulabhängigkeiten.
  • Es gibt keine main-Klasse, keine Spring-Boot-/Jakarta-Runtime und keinen Container-Stack.
  • REST, JPA, Broker, Datenbank, Security und produktive Observability sind nicht als Laufzeitadapter umgesetzt.
  • architecture-tests enthält einen Regelkatalog, jedoch kein ausführbares JUnit-/ArchUnit-Testsetup.

3. Modulübersicht

Die Tabelle trennt vorhandenen Code konsequent von vorgesehenen Strukturmodulen.

ModulTypVerantwortungStatusMaven-Abhängigkeitenstartbar
shared-kernelJava-BibliothekGemeinsame unveränderbare Ereignistypen und Querschnittsbausteine.Implementiertkeine deklariertNein
order-domainDomänenmodulOrder-Aggregate, Invarianten und fachlicher Zustandsübergang.Implementiertkeine deklariertNein
order-applicationApplication-ModulPlace-Order-Use-Case sowie Repository- und Event-Publisher-Ports.Implementiertkeine deklariertNein
order-adapter-restAdapter-StrukturmodulVorgesehener Eingang für REST/API-Aufrufe.Strukturkeine deklariertNein
order-adapter-jpaAdapter-StrukturmodulVorgesehener Persistenzadapter für Repository und Datenbank.Strukturkeine deklariertNein
order-adapter-eventsEvent-AdapterIn-Memory-Demonstration für Outbox-Veröffentlichung und Idempotenz.Implementiertkeine deklariertNein
billing-domainDomänen-StrukturmodulVorgesehene fachliche Billing-Domäne.Strukturkeine deklariertNein
billing-applicationApplication-StrukturmodulVorgesehene Billing-Use-Cases und Orchestrierung.Strukturkeine deklariertNein
customer-serviceService-StrukturmodulVorgesehener Kundenkontext im Gesamtprozess.Strukturkeine deklariertNein
inventory-serviceService-StrukturmodulVorgesehene Bestandsprüfung und Reservierung.Strukturkeine deklariertNein
notification-serviceService-StrukturmodulVorgesehene Benachrichtigungsverarbeitung.Strukturkeine deklariertNein
legacy-soap-adapterLegacy-AdapterNormalisiert einen beispielhaften SOAP-/Legacy-Kreditscore-Zugriff.Implementiertkeine deklariertNein
batch-jobsBatch-StrukturmodulVorgesehener Ort für zeit- und mengenorientierte Hintergrundverarbeitung.Strukturkeine deklariertNein
observabilityQuerschnittsmodulExpliziter Trace-Kontext für technische Korrelation.Implementiertkeine deklariertNein
architecture-testsArchitekturregel-KatalogExplizite Liste beabsichtigter Architekturregeln.Implementiert als Katalogkeine deklariertNein
deploymentDeployment-StrukturmodulVorgesehener Ort für Laufzeit- und Plattformartefakte.Strukturkeine deklariertNein

4. Implementierter Kernfluss

Place-Order-Kernfluss
Der konkrete Lernfluss nutzt Ports, Aggregate, Event und eine In-Memory-Outbox-Demonstration.
  1. CommandPlaceOrderCommand transportiert eine Liste von SKUs.
  2. Use CasePlaceOrderUseCase orchestriert Domain und Ports.
  3. AggregateOrder schützt Invarianten und erzeugt OrderPlaced.
  4. Persistenz-PortOrderRepository ist als Interface definiert; ein konkreter JPA-Adapter fehlt.
  5. Event-PortOutboxPublisher demonstriert Idempotenz im Speicher, nicht in einer Datenbank oder einem Broker.

5. Maven-Struktur

Parent und Aggregator

Das Root-POM führt 16 Child-Module und setzt Java 21 sowie UTF-8.

Plugin Management

maven-compiler-plugin 3.14.1 ist zentral konfiguriert, aber nicht um Tests, Packaging oder Runtime erweitert.

Dependencies

Die Child-POMs enthalten derzeit keine Abhängigkeiten. Das Architekturzielbild ist daher noch nicht als Maven-Dependency-Graph modelliert.

Startbarkeit

Kein Modul erzeugt eine ausführbare Anwendung. Der Kern ist nur als gemeinsam kompilierbares Lernmodell vorhanden.

6. Entwurfsmuster

Die vorhandenen Klassen markieren die eingesetzten Muster direkt als kurze Kommentare. Die zentrale Dokumentation erläutert Pattern, Zweck, Einsatzort, Begründung und Grenzen.

Entwurfsmuster-Dokumentation öffnen

7. Verknüpfung mit dem Atlas