← All topics

Learn free · topic 22

Domain-Driven Design (DDD) Modelling

Domain-Driven Design, commonly known as DDD, is an approach to modelling and system design that starts by deeply understanding the business domain. The term domain refers to the problem area the business is working in, such as banking, healthcare, education, or retail. DDD Modelling focuses on capturing the key business concepts, rules, and meanings, and making sure both business people and technical teams talk about them in the same way.

The main goal of DDD Modelling is to ensure that system design closely reflects real business needs. Instead of designing systems based only on technical convenience, DDD encourages teams to model software around how the business actually operates. When done correctly, the system grows naturally alongside the business, rather than becoming disconnected from it.

A central idea in DDD is the creation of a shared or ubiquitous language. This means that the same terms are used consistently by business experts, analysts, and developers. When a business person says “approved loan,” the developer and the analyst understand exactly what that term means, without needing further clarification. This shared language reduces misunderstandings and makes collaboration much easier.

DDD also introduces the idea of bounded contexts. A bounded context is a clearly defined area of the business where specific terms, rules, and meanings apply consistently. Large organizations often use the same words in different ways in different parts of the business. DDD accepts this reality and manages it by clearly separating contexts. Within each bounded context, definitions are precise and agreed upon.

A simple example helps illustrate this idea. Consider a school system. In one context, the term “student” may refer to a person currently enrolled in classes. In another context, such as alumni management, the same person may be referred to as a “former student.” DDD would treat these as separate contexts, each with its own clear meaning, rather than forcing one definition to fit everywhere.

In a loan-based business, DDD Modelling identifies core domain concepts such as Loan, Customer, Application, Credit Check, Approval Decision, and Repayment. These concepts are then grouped into bounded contexts. For example, a Credit Scoring context focuses on how credit scores are calculated and applied. A Risk Management context defines approval rules, thresholds, and risk categories. A Disbursement context handles payment and accounting logic. Each context has its own rules and responsibilities, and terms are clearly defined within that context.

Because of this structure, language becomes precise. Terms such as “Approved Loan,” “Rejected Loan,” or “Delinquent Loan” have exact meanings that are shared across teams. There is no confusion about whether a loan is considered approved before or after funds are released, or what qualifies a loan as delinquent. Everyone refers to the same definitions.

DDD Modelling also benefits analytics and reporting. Analytical systems use the same domain definitions as operational systems. Metrics such as approval rates, default percentages, or repayment performance are calculated using consistent rules. Different bounded contexts can also be analysed separately, such as studying credit risk behaviour independently from collections performance, while still maintaining overall consistency.

In terms of nature, DDD Modelling is business-driven but applied in technical system design. It does not focus on raw data structures like tables or files. Instead, it focuses on concepts, business rules, and language consistency. It helps break down complex systems into manageable, well-defined areas that can evolve independently without losing alignment with the business.

In summary, Domain-Driven Design Modelling ensures that business meaning stays at the center of system design. It creates a shared understanding of core concepts, removes ambiguity by clearly defining contexts, and keeps operational systems and analytical reporting aligned. By doing so, it ensures that when different teams talk about the business, they are truly speaking the same language.

Comparison

Technique

Focus

Loan Example Representation

What it adds

Business Modelling

Roles and responsibilities

Loan Officer, Credit Department, Risk Manager, Finance, Collections

Clarifies who does what in the organization

Process Modelling (BPM/BPMN)

Workflow and decision flows

Workflow: Customer applies → Documents collected → Credit Check → Approval → Disbursement

Shows how work runs step by step, including gateways and exceptions

Domain-Driven Design (DDD)

Domains and bounded contexts, shared language

“Lending” domain, “Collections” domain; Ubiquitous Language: Loan, Customer, Repayment

Aligns business and IT by giving each team a common language and context

This table shows the progression:

  • Business Modelling = who does what
  • Process Modelling = how work flows
  • DDD = how to align systems with business contexts and language

Finished reading? Test yourself with 10 questions on this topic.

Go to the questions →

From I Am Datapedia! by Mustafa Qizilbash, published here free by the author. Nothing about your reading is stored.