Tech-Stack
| Baustein | Wahl | Version | Begründung |
|---|---|---|---|
| Sprache | Java | 17 | LTS, Baseline für Spring Boot 3.x, Records/Pattern-Matching für schlanke Value Objects |
| Build | Maven (Multi-Modul-Reactor) | 3.9.x | Konvention aller Labs in diesem Repository |
| Framework | Spring Boot | 3.3.4 | Jakarta-Namespace ab Spring Boot 3, aktueller Stand |
| Persistenz | Spring Data JPA + PostgreSQL | Postgres 16 | Datenbank pro Service, siehe ADR-0003 |
| Migrationen | Flyway | 10.17.3 | versionierte, nachvollziehbare Schemaänderungen |
| Messaging | Spring Kafka | (Spring Boot BOM) | Integrationsevents zwischen Services |
| Validierung | Jakarta Bean Validation | (Spring Boot BOM) | deklarative Eingabevalidierung in api-DTOs |
| API-Doku | springdoc-openapi | 2.6.0 | OpenAPI/Swagger UI pro Service |
| DTO-Mapping | MapStruct | 1.6.0 | generierte, typsichere Mapper statt manueller Boilerplate |
| Unit-/Integrationstests | JUnit 5, AssertJ, Mockito | (Spring Boot BOM) | siehe Teststrategie |
| Integrationstest-Infrastruktur | Testcontainers | 1.20.1 | siehe ADR-0006 |
| Architektur-Fitness-Functions | ArchUnit | 1.3.0 | siehe ADR-0002 |
| Resilience (ab Phase 4) | Resilience4j | 2.2.0 | Retry für Saga-Schritte in payments-service |
| Security | Spring Security OAuth2 Resource Server + Keycloak | 25.0 (Keycloak) | siehe ADR-0007; vollstaendig verdrahtet nur in customer-service |
| Lokale Infrastruktur | Docker Compose | — | PostgreSQL, Kafka (KRaft), siehe ADR-0004 |
| Dokumentation | Markdown → HTML (eigenes Node-Skript) | — | siehe documentation/tools/ |
Bewusst nicht enthalten (siehe ADR-0004): Kubernetes/Helm, Prometheus/Grafana, k6, Jenkins, Spring Cloud Gateway/Config/Discovery, Frontend-Framework.