Core Domain

The core domain or subdomain in DDD (Domain-Driven Design) is the part of a software system that contains the primary business logic and processes, representing the heart of the application’s functionality. It is the most important and valuable part of the system, and its implementation is critical to the success of the software. The core domain is identified through careful analysis of the problem domain and its corresponding business rules and processes, and it should be well-defined, modular, and maintainable. In DDD, the core domain is typically encapsulated in a set of cohesive and loosely-coupled objects, known as the domain model, which models the business concepts, rules, and processes of the problem domain.

Example

Here is a list of possible core subdomains for a business operating in the credit card domain:

  1. Card Issuance: This subdomain is responsible for the process of issuing new credit cards to customers. It includes tasks such as collecting customer information, performing credit checks, printing and delivering physical cards, and activating the cards.
  2. Card Payments: This subdomain handles the processing of credit card transactions. It includes tasks such as authorizing payments, capturing payments, settling funds to merchants, and managing chargebacks.
  3. Fraud Detection: This subdomain focuses on detecting and preventing fraudulent activity on credit card accounts. It includes tasks such as analyzing transaction data, monitoring for suspicious patterns, and initiating fraud investigations.
  4. Rewards Programs: This subdomain manages loyalty programs that offer rewards to customers for using their credit cards. It includes tasks such as defining reward structures, tracking customer points and rewards, and administering rewards redemptions.
  5. Customer Service: This subdomain handles customer inquiries and support related to credit card accounts. It includes tasks such as answering questions about account balances, assisting with billing disputes, and resolving technical issues with card usage.
  6. Compliance: This subdomain ensures that the credit card business operates in accordance with relevant laws and regulations. It includes tasks such as monitoring for compliance violations, maintaining regulatory documentation, and implementing necessary changes to stay compliant.

It is pertinent to note that the idea of core, supporting, and generic subdomains can be different even for businesses operating in the same domain. This is because the subdomains and their roles are determined by the business needs and the particular context of each organization. For example, in the credit card domain, a company focused on credit card rewards programs might consider the rewards program subdomain to be core, while another company with a focus on credit card acquisitions might consider it to be supporting or even generic. Similarly, a company with a strong focus on fraud prevention might consider the fraud detection subdomain to be core, while another company might consider it to be supporting. Therefore, it is important for each organization to identify and prioritize their specific subdomains based on their unique business needs and goals.

See Also

Supporting subdomain

Generic subdomain

Core domain charts