HTTP Domain
All error and success codes
API payload validation
Calls a service or a model function
Orchestration between services and the domain model
Database session
External APIs
Cloud Services (such as RabbitMQ or S3)
Domain logic
Accesses repositories
Allowances
We allow HTTP 404 errors to be thrown from within the model as a convenience for now
Accesses the database, performs CRUD operations
One repository for each database table in RDMS