DDD, identifying the core domain
Asked Answered
B

2

9

I am having difficulty in attempting to ascertain which domain within a given model can be considered the "core domain". It can be tricky especially if there are several domains which are core to the function of a business.

I would like someone to outline a systematic process to single out the core domain when dealing with a system that has multiple candidates.

Bathometer answered 12/8, 2014 at 21:18 Comment(0)
T
11
  • Core domain - the most important subdomain, which is essential for the business. Without it the business would fail. If you ever need to pick the first solution to implement - start with the core domain.

  • Supporting subdomain - subdomain, which is less valuable for business than Core domain. Without it business may be can even survive for some time. But it still is quite important (supports core domain), it also is specific for the domain and has to be developed. In this case, for some reason, we can't buy an existing software or component to solve the problem.

  • Generic subdomain - subdomain which is less valuable for business than Core domain. It also is generic enough to allow buying it off the shelf (unlike supporting domain).

Trehala answered 14/7, 2019 at 1:48 Comment(2)
What would be the Core Domain of a music platform which is mainly concerned with streaming audio files?Shirleeshirleen
@AmirhoseinAl it's hard to say, depends on a specific music platform and the business model it uses to operate. That's the whole point - context matters. However, something like "Audio File" sounds like a good candidate for one of the possible Core Subdomains.Guinna
E
5

Do you exactly mean multiple core domain candidates or may be it is multiple bounded contexts in core domain?

"Can Core Domain span multiple Bounded Contexts?" - another SO question

Eric asks several questions to help us identity which parts are core to the domain:

  1. What makes the system worth writing?
  2. Why not buy it off the shelf?
  3. Why not outsource it?

The core domain is so critical and fundamental to the business that it gives you a competitive advantage and is a foundational concept behind the business.

Source

Ejector answered 13/8, 2014 at 0:51 Comment(4)
But that's the point, what's not to say that there are several domains that are critical to the function of the business ? I like most of what he's said but this one issue just doesn't sit with me.Bathometer
@rjindael I think a lot of these DDD terms are based on working in a larger organization where teams are assigned a project with a singular focus. Consider the example of a book publisher, where your team has been given the task of of creating a tool to manage the interactions between authors and editors. In a small publisher though, your team might be given the task of creating the entire system, which not only does that, but has tools for marketing the book. Obviously creating the book and marketing are both core to the business, so these should be at least two core domains.Playreader
The actual publishing of the book could also be considered core, and you might also need to build something to manage the many different editions resulting from a single book. Any of these things (book creation, marketing, providing multiple versions for varied audiences), could be considered to give a publisher a competitive advantage and fundamental to the business. So I don't find the above answer very helpful.Playreader
@Rijndael, I think the point is to focus on the most important things for the business. If there are multiple core domains, you can focus on one of them. If you can't focus on one of them, some of your core domains are probably a parts of the larger core domain.Ejector

© 2022 - 2024 — McMap. All rights reserved.