This project is designed as a showcase to demonstrate modern technologies, patterns, and best practices in software architecture, making it a practical reference for teams and individuals interested in modular Spring development.
Spring Modulith is used in the project to enable a clean, modular architecture that combines the simplicity of a monolith with strong boundaries and maintainability between business modules. It helps organize code by domains, improves testability, allows easier refactoring, and prepares the application for possible future migration to microservices—without introducing the complexity of a distributed system too early.
Prerequisites: docker compose, git, sdk man
sdk current java
Using java version 21.0.6-amznClone repository, change to projectfolder
git clone https://github.com/dkotrada/prove.git && cd proveSetup provelib dependency in mavenLocal
./gradlew bootstrapProvelibStart application
./gradlew bootRunAPI Request
curl http://localhost:8080/orders/nonexistentExample response
{"timestamp":"2025-08-15T08:23:57.266461884","status":404,"error":"Not Found","message":"Order with ID nonexistent not found","errors":{}}- Modules - Spring Modulith
- Events - Application Events
- Migrations - Flyway
- Logging - Logback
- Testcontainers - PostgresSQL
- Integration Tests
- OpenAPI
- Spring Security
- JWT - Json Web Token
- RBAC - Role-Based Access Control
- Observability Actuator
- Metrics Micrometer
- ...