Domain Model

Last Updated on Apr 14, 2021

A Domain Model is an abstract representation of the business domain. It represents a view, not the reality, of the problem domain designed only to meet the needs of specific business use cases. The model contains only what is relevant to solve problems in the context of the application being created, and ignores the rest of reality. Its primary purpose is to establish a common understanding between the Business and Technology functions.

The term Domain Model did not originate with Domain-Driven Design. It goes as far back as the 1980s with Ivar Jacobson and Grady Booch.

The Domain Model encloses the rules and logic of the Business Domain. It represents domain concepts as a web of interconnected objects, with each object defining the data and behavior of a specific concept. Its usefulness comes from its ability to represent complex logic in the problem domain, to solve business use cases.

If one were to imagine the external world on one side and the application on the other, the application would consist of two distinct parts: a part that is exposed to the external world for the manipulation and consumption of data, and another part that encloses the domain logic of the domain. The domain model represents the innermost layer and deals explicitly with the domain logic of the application.

The domain exists only to help us solve problems - it prioritizes clarity over comprehensiveness and is free of technical complexities. The lack of technicality encourages the business to contribute to the development and maintenance of the model.

© 2022 Ambitious Systems. All Rights Reserved.