How to Break Down a Business Domain: From Core to Supporting Subdomains
This article explains DDD terminology by using a peach‑tree analogy to illustrate how a business can be divided into domains, subdomains, core, generic, and supporting domains, and provides step‑by‑step guidance for identifying and structuring these layers to focus development effort effectively.
Glossary
In the earlier article “Why DDD rose and its relation to microservices”, a peach tree example was used: the tree is split into organs (root, stem, leaf, flower, fruit, seed), each representing a research domain. Domains can be further divided into subdomains, core domains, generic domains, and supporting domains.
To study the peach tree efficiently, follow these steps:
Step 1: Identify the research object – the domain, i.e., the peach tree.
Step 2: Split the domain by dimensions into organs, then into nutritional organs (root, stem, leaf) and reproductive organs (flower, fruit, seed), which become subdomains.
Step 3: Further categorize subdomains into core, generic, and supporting domains; then break each subdomain into “organizations” such as protective, nutritional, and transport groups.
Step 4: Decompose organizations into cells (e.g., root hair cells, vessel cells).
Whether to continue splitting cells depends on the business context; often the smallest level corresponds to entities, aggregates, aggregate roots, and value objects in DDD.
Key Terms
Domain: A specific business area (e.g., sales, logistics) that defines the problem space; DDD confines the model within this bounded context.
Subdomain: A finer‑grained part of a domain; can be further split into sub‑subdomains, analogous to studying a fruit’s tissue or cells.
Core Domain: The most critical part that provides the company’s competitive advantage (e.g., the sales system for an e‑commerce platform).
Generic Domain: Non‑core but reusable functions used across multiple subdomains, such as authentication or logging.
Supporting Domain: Functions that merely support the business (e.g., payment, logistics) and can often be outsourced.
Understanding these concepts helps align teams, allocate resources, and focus development effort on the most valuable areas.
Why Distinguish Core, Generic, and Supporting Domains?
The core domain drives product success and company competitiveness; generic domains serve shared needs without unique business value; supporting domains are necessary but not differentiating. By classifying subdomains, organizations can prioritize investment, tailor strategies, and avoid wasting resources on low‑impact areas.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
IT Architects Alliance
Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
