Spring Boot Project Structure¶
Purpose¶
This standard defines the expected project structure for the future Algosure Spring Boot Modulith backend.
Logical Structure¶
src/main/java/com/algoza/algosure
<module>
api
application
domain
infrastructure
shared
src/main/resources
db/changelog
src/test/java/com/algoza/algosure
<module>
api
application
domain
infrastructure
modulith
Resource Responsibilities¶
| Area | Responsibility |
|---|---|
src/main/java |
Backend application code organized by module. |
src/main/resources/db/changelog |
Future Liquibase changelogs owned by module. |
src/test/java |
Tests mirroring module and layer structure. |
shared |
Minimal shared kernel only. |
Module Directory Rules¶
- Each module has its own
api,application,domain, andinfrastructureareas. - Module internals are private unless exposed through approved APIs, application services, events, or projections.
- A module must not place business behavior in shared infrastructure.
- Future integration adapters live under infrastructure boundaries and do not define domain ownership.
Project Boundary Diagram¶
flowchart TB
Root[com.algoza.algosure]
Identity[identity module]
Organization[organization module]
Bid[bid module]
Shared[shared kernel]
Resources[resources/db/changelog]
Root --> Identity
Root --> Organization
Root --> Bid
Root --> Shared
Root --> Resources