Architecture Decisions
ADR-001: Domain und Application getrennt halten
Der Code trennt Domain (Order, Money,
DomainError) von Application
(OrderApplicationService, Ports). Dadurch kann man
fachliche Regeln ohne REST, Datenbank oder Broker testen.
ADR-002: Outbox statt direkter Event-Versand im Use Case
Der Use Case schreibt Domain-Zustand und Outbox Message innerhalb einer Transaktionsgrenze. Der Publisher sendet danach. Das verhindert nicht alle Fehler, aber es macht Crash-Fälle beherrschbar.
ADR-003: JDK-only Lab für Lernbarkeit
Die Fallstudie nutzt bewusst JDK-only-Code. Dadurch sind Java-Grundlagen, Architekturgrenzen, Tests und Persistenzmentalmodell sichtbar, ohne Framework-Magie.
ADR-004: Pattern im Code kommentieren
Jedes relevante Entwurfsmuster ist im Code kurz kommentiert und in
docs/design-patterns.html begründet.