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.
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.
2. Ehrlicher Reifegrad
- 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-testsenthält einen Regelkatalog, jedoch kein ausführbares JUnit-/ArchUnit-Testsetup.
3. Modulübersicht
Die Tabelle trennt vorhandenen Code konsequent von vorgesehenen Strukturmodulen.
| Modul | Typ | Verantwortung | Status | Maven-Abhängigkeiten | startbar |
|---|---|---|---|---|---|
shared-kernel | Java-Bibliothek | Gemeinsame unveränderbare Ereignistypen und Querschnittsbausteine. | Implementiert | keine deklariert | Nein |
order-domain | Domänenmodul | Order-Aggregate, Invarianten und fachlicher Zustandsübergang. | Implementiert | keine deklariert | Nein |
order-application | Application-Modul | Place-Order-Use-Case sowie Repository- und Event-Publisher-Ports. | Implementiert | keine deklariert | Nein |
order-adapter-rest | Adapter-Strukturmodul | Vorgesehener Eingang für REST/API-Aufrufe. | Struktur | keine deklariert | Nein |
order-adapter-jpa | Adapter-Strukturmodul | Vorgesehener Persistenzadapter für Repository und Datenbank. | Struktur | keine deklariert | Nein |
order-adapter-events | Event-Adapter | In-Memory-Demonstration für Outbox-Veröffentlichung und Idempotenz. | Implementiert | keine deklariert | Nein |
billing-domain | Domänen-Strukturmodul | Vorgesehene fachliche Billing-Domäne. | Struktur | keine deklariert | Nein |
billing-application | Application-Strukturmodul | Vorgesehene Billing-Use-Cases und Orchestrierung. | Struktur | keine deklariert | Nein |
customer-service | Service-Strukturmodul | Vorgesehener Kundenkontext im Gesamtprozess. | Struktur | keine deklariert | Nein |
inventory-service | Service-Strukturmodul | Vorgesehene Bestandsprüfung und Reservierung. | Struktur | keine deklariert | Nein |
notification-service | Service-Strukturmodul | Vorgesehene Benachrichtigungsverarbeitung. | Struktur | keine deklariert | Nein |
legacy-soap-adapter | Legacy-Adapter | Normalisiert einen beispielhaften SOAP-/Legacy-Kreditscore-Zugriff. | Implementiert | keine deklariert | Nein |
batch-jobs | Batch-Strukturmodul | Vorgesehener Ort für zeit- und mengenorientierte Hintergrundverarbeitung. | Struktur | keine deklariert | Nein |
observability | Querschnittsmodul | Expliziter Trace-Kontext für technische Korrelation. | Implementiert | keine deklariert | Nein |
architecture-tests | Architekturregel-Katalog | Explizite Liste beabsichtigter Architekturregeln. | Implementiert als Katalog | keine deklariert | Nein |
deployment | Deployment-Strukturmodul | Vorgesehener Ort für Laufzeit- und Plattformartefakte. | Struktur | keine deklariert | Nein |
4. Implementierter Kernfluss
- Command
PlaceOrderCommandtransportiert eine Liste von SKUs. - Use Case
PlaceOrderUseCaseorchestriert Domain und Ports. - Aggregate
Orderschützt Invarianten und erzeugtOrderPlaced. - Persistenz-Port
OrderRepositoryist als Interface definiert; ein konkreter JPA-Adapter fehlt. - Event-Port
OutboxPublisherdemonstriert 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.