Architecture layers
Every SPLENT feature follows a layered architecture. Each layer has a clear responsibility:
Route (HTTP) → Service (logic) → Repository (data) → Model (DB)
- Blueprints — HTTP routing and asset serving
- Services — business logic, no HTTP concerns
- Repositories — database access, one per model
- Seeders — initial and test data population
Each layer only talks to the one below it. Routes never touch the DB directly. Services never produce HTTP responses. Repositories never contain business rules.