Services
- Part of the business logic layer.
- Concerned with implementing business rules. For example:
- Determine initial status of a credit card application
- Determine what client details to expose when a client is referred from one firm to another.
- A service can interact with multiple repositories to perform its operations.
Repositories
- Part of the data access layer.
- Concerned with data retrieval and persistence. For example:
- How to find all the different types of reports for a client using a clientId.
- How to find all the notes between two firms regardless of which firm users added those notes.
- A repository isn’t usually aware of higher-level business logic.