Skip to content

Technology choices

Technology Role
Java 25 Runtime, records, and virtual threads
Spring Boot 4.1 / Framework 7 Application platform and dependency management
Spring MVC REST controllers and validation
Spring Security JWT authentication, authorization, and CSRF
Spring Data JPA / Hibernate Persistence and pagination
MySQL / H2 Runtime and test databases
MapStruct Entity-to-model mapping
Springdoc OpenAPI Runtime API description and Swagger UI
Micrometer / OpenTelemetry Metrics and traces
JaCoCo / Sonar / CodeQL Coverage and static analysis

JSpecify annotates service and repository contracts for nullness. The public API uses records and Jakarta Validation. Lombok is deliberately absent.