dbt Mesh FAQs
dbt Mesh is a new architecture enabled by dbt Cloud. It allows you to better manage complexity by deploying multiple interconnected dbt projects instead of a single large, monolithic project. It’s designed to accelerate development, without compromising governance.
Overview of Mesh
What are the main benefits of implementing dbt Mesh?
What are model contracts?
What are model versions?
What are model access modifiers?
What are model groups?
What are some potential challenges when using dbt Mesh?
How does this relate to the concept of data mesh?
How dbt Mesh works
Can dbt Mesh handle cyclic dependencies between projects?
Is it possible for multiple projects to directly reference a shared source?
What if a model I've already built on from another project later becomes protected?
If I run `dbt build --select +model`, will this trigger a run of upstream models in other projects?
If each project/domain has its own data warehouse, is it still possible to build models across them?
Can I run tests that involve tables from multiple different projects?
Which team's data schema would dbt Mesh create?
Is it possible to apply model contracts to source data?
Can contracts be partially enforced?
Can I have multiple owners in a group?
Can contracts be assigned individual owners?
Can I make a model “public” only for specific team(s) to use?
Is it possible to orchestrate job runs across multiple different projects?
Integrations available between the dbt Cloud Discovery API and other tools for cross-project lineage?
How does data restatement work in dbt Mesh, particularly when fixing a data set bug?
How does dbt handle job run logs and can it feed them to standard monitoring tools, reports, etc.?
Can dbt Mesh reference models in other accounts within the same data platform?
Permissions and access
How do user access permissions work in dbt Mesh?