Architekturueberblick Master 2
Master 2 erweitert den ersten Maven-Master zu einer groesseren Enterprise-Referenz. Der Workspace ist auf fachliche Modulgrenzen, klare Abhaengigkeiten und austauschbare Infrastruktur ausgelegt.
Zielbild
Die Domain kennt keine REST-Controller, keine JPA-Entities, keine Kafka-Templates und keine Framework-Bootstrapping-Klassen. Application Services orchestrieren Use Cases ueber Ports. Adapter implementieren technische Details.
Modulgruppen
| Gruppe | Module | Zweck |
|---|---|---|
| Plattform | platform-bom, Parent POM |
Versionen, PluginManagement, Enforcer |
| Shared Kernel | shared-kernel |
Money, Result, DomainEvent, IdempotencyKey |
| Domain | order-domain, customer-domain, inventory-domain, pricing-domain, payment-domain |
Fachmodell und Regeln |
| Application | order-application |
Use Cases, Commands, Transactions-Port |
| Integration | integration-outbox |
Outbox, Relay, Saga |
| Adapter | REST, JPA, Kafka, Legacy ACL | Infrastruktur und Schnittstellen |
| Apps | Spring Boot, Quarkus | Laufzeitvarianten |
| Tests | architecture-tests |
ArchUnit-Regeln und Pattern-Pruefung |
Warum Maven modular?
Maven macht Abhaengigkeiten sichtbar. Wenn Domain-Module aus Versehen Spring oder JPA importieren, faellt das im Build und in Architekturtests auf.
Lernfokus
- Reactor verstehen: Parent, BOM, Module, pluginManagement.
- Ports and Adapters praktisch sehen.
- Fachliche Patterns direkt im Code finden.
- Outbox/Saga als Enterprise-Integrationsmuster verstehen.
- Spring Boot und Quarkus als alternative Runtimes ueber denselben Use Case vergleichen.