Data Mesh (Zhamak Dehghani 2019) concept page. 4 principles: domain-oriented decentralized ownership, data as product, self-serve infrastructure, federated computational governance. Shows central DWH bottleneck (Gen 1-2) vs Data Mesh (Gen 3) with domain teams (orders, payments, marketing) owning their own data products on top of self-serve platform (S3+Iceberg, DataHub catalog, Spark/Trino, Monte Carlo) governed by federated council (OPA, data contracts). 5 scenarios: monolithic-bottleneck (legacy), mesh-publish (orders team self-serves), mesh-discover (marketing finds + consumes), contract-violation (governance blocks breaking change), quality-slo (SLO alert routing).
К 2018-му в больших организациях (Netflix, JPMorgan, Zalando) централизованная data-команда стала бутылочным горлышком. Сотни data-engineers, очередь работы — месяцы. Marketing хочет KPI? Открывает тикет в data team. Payments хочет dashboard? Тикет. Команда из 50 человек физически не успевает писать ETL для 100 доменов, разбираться в их бизнес-логике и поддерживать качество.
Zhamak Dehghani (ThoughtWorks 2019) формализовала Data Mesh — децентрализованную парадигму. Идея: data ownership разделяется по доменам, как microservices разделили ownership сервисов. Команда orders владеет orders DB и аналитическими data products про orders. Central data team превращается в platform team — даёт инфраструктуру, не пишет pipelines.
Это не «новый Snowflake», а organizational + technical сдвиг. Без mature engineering culture, без 100+ data engineers — Mesh принесёт больше боли, чем пользы.
«Data Mesh = microservices для данных: каждый бизнес-домен владеет своими data products end-to-end. Platform team даёт self-serve инфраструктуру. Federated governance задаёт стандарты, enforce через CI, а не через митинги.»
Четыре принципа Dehghani:
Шесть групп на канвасе:
opa (OPA policies для PII, GDPR, schema), contracts (Data Contracts schema + SLO).s3 (S3 + Iceberg storage), catalog (DataHub discovery + lineage), compute (Spark/Trino/Flink), observ (Monte Carlo quality SLOs).ord-db (orders DB) + ord-prod (data product orders_summary).pay-db + pay-prod (payments_daily).mkt-prod (campaign_attribution) + mkt-bi (dashboards).central-team с очередью ETL-тикетов и dwh-bottleneck для сравнения с Mesh.Edges: domain DB → product (CDC + dbt), product → s3 (publish) и → catalog (register), governance ноды → catalog/storage (policy enforce, SLO alerts), legacy: domain DBs → central-team → dwh.
Generation 1-2: монолитный central DWH. Orders и payments шлют тикеты в central team. Очередь — 47 тикетов, ожидание 3 месяца. Sequential pipelines, один баг ломает всё. DWH превращается в data swamp с 10K таблиц без ownership. Central team — single point of contention для бизнеса.
Domain team публикует data product сам. Orders team строит orders_summary через dbt + Iceberg. Кладёт в s3://lake/domains/orders/orders_summary/v1. Регистрирует в DataHub: schema, owner, SLO 1h freshness. Публикует data contract v1 с 30-day breaking change notice. Monte Carlo автоматом трекает freshness и quality. Platform team в процессе не участвовала.
Marketing discovers + consumes через catalog. Marketing ищет в DataHub «orders by country last 30 days», находит orders.orders_summary с owner и SLO. OPA auto-approves access (federated policy). Через Trino делает join orders_summary + payments_daily, билдит campaign_attribution как новый data product. Lineage auto-detected. BI dashboards consumes — быстрая итерация без тикетов в central team.
Computational governance блокирует breaking change. Orders team хочет переименовать колонку country → country_code. Data contract v1 нарушен — 30-day notice не дан. CI пайплайн читает OPA policies, блокирует merge в репозиторий (не на митинге). Downstream mkt-prod был бы сломан, но enforcement не дал. Catalog нотифицирует orders-team: нужен migration plan и notice.
Freshness SLO violation triggers alert. orders_summary не обновлён 6 часов (SLO 1h). Monte Carlo fires anomaly detection. PagerDuty шлёт owner data product, не central team. Marketing dashboard переходит на cached fallback, помечен как stale. Accountability у Data Product Owner — это и есть «data as a product».
ADR-001: когда выбирать Data Mesh, а когда — нет.
ADR-002: catalog — DataHub vs Atlan vs OpenMetadata. DataHub (open source, self-hosted) выбран в типовом enterprise: нет vendor lock-in, сильнейшая column-level lineage через dbt/Spark integrations, GraphQL API легко интегрируется в CI. Trade-off: UX слабее коммерческого Atlan ($100-180K/year), нужны 2 FTE для operate, setup 6 недель.
ADR-003: federated computational governance vs human review. Старая модель — committee утверждает каждую schema change через тикет; превращается в очередь хуже централизованной. Mesh-модель: committee пишет политики (OPA Rego, Avro compat, dbt tests), CI блокирует нарушения. Human review только для исключений: новый PII data class, cross-region data movement, breaking change без notice. Метрика успеха — <5% решений требуют human review через год.
Инструментальная экосистема: DataHub / OpenMetadata / Atlan (catalogs), Monte Carlo / Bigeye / Soda (quality observability), OPA / Apache Ranger / Unity Catalog (governance), Iceberg / Delta Lake / Hudi (storage), dbt contracts (schema enforcement), Snowflake Data Sharing (cross-domain exchange).
Канонические источники: