A logical grouping of related data assets
A data domain is a unit of data ownership aligned to a business area, where the team closest to the data is responsible for it as a product. It is the organising idea of data mesh, and it answers a problem central data teams kept hitting: nobody who understood the data owned it, and nobody who owned it understood it.
Zhamak Dehghani, then at ThoughtWorks, introduced data mesh in May 2019, with the foundational essays published on Martin Fowler's site and later expanded in the book Data Mesh (2022). The concept rests on four principles: domain-oriented decentralised ownership, data as a product, self-serve data infrastructure as a platform, and federated computational governance. Domain ownership is the first and the load-bearing one: responsibility for analytical data moves from a central team into the hands of the domain teams who generate and understand it.
The lineage runs straight through domain-driven design. Dehghani borrowed Eric Evans's notion of the bounded contextBounded ContextEngineeringA DDD bounded context defining a service boundaryView reference →, arguing that a business domain's boundary is a natural seam for distributing data ownership, the same way it is for distributing services. Decomposing along business domains keeps the impact of change local to where the domain's people already work.
A retailer once piped every event into one warehouse owned by a central team that knew the pipelines but not the meaning. Under a domain model, three domains take shape: Orders, Inventory, and Customer. The Orders domain owns its order-event data end to end, publishes a clean "orders" data productData ProductData & AnalyticsA curated, reusable data assetView reference → with a documented schema and freshness guarantee, and defines the glossary termGlossary TermData & AnalyticsA defined term for shared understandingView reference → "fulfilled order" so the rest of the company stops arguing about it. When checkout logic changes, the Orders team updates its own data product, and the blast radius stays inside one bounded context.
In the Unified Product Graph, a Data Domain anchors the data and analytics region. The product organises into domains through Productorganised intoData Domainhierarchy, and each domain reaches its outputs and inputs through product_organised_into_data_domainData DomainproducesData Producthierarchy, data_domain_produces_data_productData DomaincontainsData Sourcehierarchy, and data_domain_contains_data_sourceData DomaindefinesGlossary Termhierarchy. That fan-out encodes the data mesh thesis structurally: ownership lives at the domain, and products, sources, and shared vocabulary all hang off the team accountable for them.data_domain_defines_glossary_term
Type-specific fields on BaseNode
stewardstringAccountable person or team
domain_typestringDomain contents classification. `master` = canonical entity data (customers, products). `operational` = live transactional data. `analytical` = warehouse / BI data. `reference` = slow-changing lookup data.
sensitivitystringSensitivity band applied across the domain
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
6 edge types connected to this entity.
product_organised_into_data_domaindata_domain_produces_data_productdata_domain_contains_data_sourcedata_domain_defines_glossary_termdata_domain_modelled_in_data_modeldata_domain_visualised_in_dashboard