All notable changes to this project are documented in this file.
- Paginated
/api/v2/userscontract with explicit source provenance - Ports and adapters for independent PostgreSQL and MongoDB persistence models
- ArchUnit dependency rules and real PostgreSQL/MongoDB Testcontainers coverage
- Driver-level timeouts and per-source query metrics
- MIT License
- Bounded v1 reads without changing the existing JSON response fields
- Standard HTTP failures now preserve their
400,404,405, and415statuses - User identities are now unambiguous by source and source-local ID
- Bounded concurrent aggregation with per-source timeouts
- Caffeine query caching and write-triggered invalidation
- Bean Validation request contract and explicit HTTP error responses
- Flyway relational schema migration
- CodeQL, dependency updates, Docker build verification, SBOM, and attested releases
- Upgraded to Spring Boot 3.5 on Java 21
- Replaced custom data-source lifecycle code with Spring Boot-managed connections
- Made demo seeding opt-in and non-destructive
- Return
503 Service Unavailableinstead of silently returning partial data