Data Mesh Through the Lens of DDD and Semantics
By Arshad Ansari
Data mesh solves who owns the data. It does not, on its own, solve what the data means. Domain-driven design and shared semantics fill that gap.
This post is part of a series on DDD, ontologies and business meaning in data work. Here I look at data mesh through that lens.
What data mesh asks for
Data mesh is an operating model. It rests on four ideas:
- Domain ownership. The team that knows the business area owns its data.
- Data as a product. Each domain publishes datasets that others can find, trust and use.
- Self-serve infrastructure. A shared platform removes the plumbing work from every domain team.
- Federated governance. Common rules apply everywhere, and domains decide the rest.
The first idea comes straight from domain-driven design. A domain is a part of the business with its own language and its own rules. DDD calls the edge of that language a bounded context.
Where meaning breaks
Suppose sales owns "customer" and billing owns "customer". Both teams publish a clean, well-tested dataset. The two datasets still disagree. Sales counts a signed-up trial. Billing counts an account that has paid.
Neither team is wrong. Each word is correct inside its own bounded context. The problem appears when someone joins the two datasets and trusts the result.
Mesh makes this problem more visible, not less. Before mesh, a central team forced one definition, often badly. After mesh, each domain keeps its own, and the conflicts show up at the joins.
What DDD adds
DDD gives you three tools that fit mesh well.
Bounded contexts. Write down where each term applies. A data product should state its context in plain words: what "customer" means here, and what it does not mean.
Ubiquitous language. Inside a domain, business people and engineers use the same words. Column names, docs and dashboards follow that language. This makes a data product readable by people outside the team.
Context mapping. Where two domains touch, say how their terms relate. "A billing customer is a sales customer who has paid at least once" is a context map entry. It is one sentence, and it removes a whole class of bad joins.
What semantics adds
A context map is a human document. Semantics makes parts of it machine-readable: shared identifiers, agreed term definitions, and explicit relations between concepts. This is where ontologies and a semantic layer come in, which earlier posts in this series cover.
In a mesh, I would keep this layer small. Only terms that cross domain lines need a shared definition. Everything else stays inside the domain.
How the four ideas fit together
| Mesh idea | What it needs from DDD and semantics |
|---|---|
| Domain ownership | A bounded context written down for each domain |
| Data products | A stated meaning for every column others will use |
| Shared infrastructure | A place to publish definitions and identifiers, not just tables |
| Federated governance | Rules for how terms that cross domains are agreed and changed |
Governance is the part teams skip. Federated does not mean absent. Someone must own the cross-domain terms, and changes to them need a review, as a schema change does.
What I would do first
I would not start with tooling. I would start with three steps:
- List the few terms that more than one team uses, such as customer, order, active user and revenue.
- For each term, write one sentence per team saying what it means to them.
- Where the sentences differ, decide: rename one, or write the mapping between them.
That is a day or two of conversation, not a platform project. It also shows quickly whether you have a meaning problem or an ownership problem.
Who should not do this
If you have zero to three data people, you do not need a mesh. You have one team. Give each key dataset a named owner, write down your core definitions, and keep one warehouse. Mesh adds coordination cost, and a small team has nobody to coordinate with.
Mesh also does not help if your real problem is a growing warehouse bill or an idle pipeline. Those are platform problems. Fix them first.
Check your own setup
If you want a quick read on whether your data platform has clear ownership, documented definitions and a sound base, the free Data Platform Teardown is a checklist you can run yourself. It is free and ungated.
The short version
Mesh gives each domain control of its data. DDD tells you where one domain's meaning ends. Semantics lets the domains still talk to each other. Without the last two, mesh gives you faster ways to publish data that disagrees with itself.
Common questions
- Is data mesh the same as domain-driven design?
- No. Domain-driven design is a way to model a business domain and draw boundaries around it. Data mesh is an operating model for who owns and publishes analytical data. Mesh borrows the idea of domain boundaries from DDD.
- Does data mesh fix inconsistent definitions like 'customer'?
- Not by itself. Mesh moves ownership to domain teams. If nobody defines how domains relate their terms, each team publishes its own meaning. Shared semantics and a thin layer of governance close that gap.
- Does a small team need a data mesh?
- Usually not. Mesh pays off when many teams produce data and a central team is the bottleneck. With zero to three data people, you need clear ownership and clear definitions, not a mesh.
Get new posts by email
Data engineering notes like this one — what breaks and what it costs, in production.
What breaks and what it costs — pipelines, warehouse bills, and the failures that only show up in production. A few a month, never padded to hit a schedule. No sequence, no pitch deck. Reply 'stop' once and you're off — it reaches me, not a queue.
Want the whole playbook?
If this was useful, the long version is my book. Local-First Analytics — 313 pages, runnable code for every chapter — is the full build: DuckDB, Parquet and Arrow, from install to production. On Amazon, and chapter 1 is free to read here.
Get the bookNot ready to buy? Read chapter 1 free — the whole chapter, no email required.
Rather talk it through? Book a free 30-minute call. No slot that suits your time zone? Email info@hikmahtech.in.