The main objective of domain design is to understand the exact domain problems and then draft a model that can be written in any language or set of technologies. For example, in our Flix One bookstore application, we need to understand Order Management and Stock Management.
Here are a few characteristics of the domain-driven model:
- A domain model should focus on a specific business model and not multiple business models
- It should be reusable
- It should be designed so that it can be called in a loosely coupled way, unlike the rest of the system
- It should be designed independently of persistence implementations
- It should be pulled out from a project to another location, so it should not be based on any infrastructure framework