OTC Referenzimplementierung

Ein fokussiertes Spring-Boot-Modul mit echter Fachlogik statt Capability-Skeletons.

OTC Referenzarchitektur

Fachlicher Ablauf

  1. Idempotente Bestellung anlegen.
  2. Zahlung autorisieren.
  3. Bestand reservieren.
  4. Bei Fehler Zahlung kompensieren und Bestellung stornieren.
  5. Bestellung bestätigen und Domain Events in die Outbox schreiben.
  6. Outbox Relay publiziert nach Kafka.

Technik

Java 21Spring Boot 3.5.16PostgreSQLFlywayKafkaActuatorPrometheusTestcontainers

Start

cd 07_IMPL_OTC_Order_to_Cash/mvn-ws-impl-otc/otc-reference-application
docker compose up -d postgres redpanda
mvn spring-boot:run

curl -X POST http://localhost:8080/api/v1/orders \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: change-me-local' \
  -H 'Idempotency-Key: demo-001' \
  -d '{"customerId":"C-100","lines":[{"productId":"SKU-1","quantity":2,"unitPrice":"19.90","currency":"EUR"}]}'

Prüfung ohne Maven-Download

./scripts/check-core.sh

Der Check kompiliert und testet Aggregate, Value Objects, Statusübergänge und Domain Events nur mit JDK 21.

Design Patterns

Pattern-Dokumentation des Referenzmoduls öffnen

Wichtige Dateien

DateiZweck
pom.xmlSpring Boot, JPA, Kafka, Flyway, Testcontainers und SBOM
src/main/java/.../domain/Order.javaAggregate Root mit Invarianten
CheckoutService.javaSaga-Orchestrierung und Kompensation
db/migrationVersionierte PostgreSQL-Migrationen
openapi/otc-api.yamlHTTP-Vertrag
⌂ Cockpit