DDD - Domain Driven Design - Domains and Subdomains

Domains and Subdomains

Reading Time: 3 minutes

Domain is the most vital concept of DDD, understanding what is Domain is essential for us to accomplish what we call ‘Domain Distillation‘, which we will address with example in future Posts.

We can say that Domain is a scope where one works and how one works, in other words, it refers to the space of the problem for which we are acting, its entities, its behavior and rules. Each company owns a unique Domain, even if it follows ‘market practices’, the company will always have its own way of doing things, its business differential, its brand.

One thing we need to know is that the term Domain may have some meanings within the DDD:

– Domain which is the totality of the Company’s Domain.
– Domain that refers to an area, sector or process of the company.
– Domain that serves as support for the business.

It is from the Domain that we design our Domain Models, which are solutions that seek to meet the needs of the Domain.

It is a mistake to think that we can create a single Domain Model for the entire company, if you try to do that it will surely fail.

Subdomains

DDD requires the decomposition of the Domain into Subdomains, which facilitates our understanding.

In this way, we are able to separate what in fact generates value and financial return for the company, and thus, strategically we can put our best efforts in that part of the Domain.

In simple terms, a Subdomain is a subpart of the Domain. Regardless of the size of the company, every Domain can always be divided into Subdomains, by doing this we divide the entire complexity of the Company’s Domain into smaller parts, and we will have domain experts who will understand the aspects of the business very well because it is a specific Subdomain.

Types of Subdomains

Domains and Subdomains

There are three types of Subdomains:

Core or Basic

This is where we must put our best efforts, it is what makes the company work, which brings value to the business, which differentiates the company from competitors, is where the greatest focus is placed.

Auxiliary or Support

It is the Domain that complements the main Domain, without it, its main Domain can not be successful, therefore, it is very important, will require internal development or outsourcing, because there is no solution ready to implement.

Generic

It is typically a ready-made solution, but can also be outsourced or even developed internally. It does not bring a specific rule to your main business, ie in most cases we could hire as a service.

See you soon!

Buy Me A Coffee

Leave a Comment

Your email address will not be published. Required fields are marked *