Group 3 - Advanced II¶
Your slice of MediaPulse¶
This is the deepest track in the workshop. You're assumed comfortable with generic and singular testing and the shape of a dbt Mesh setup already - today is about auditing coverage systematically across both projects, closing real governance gaps between what a model's documentation promises and what its configuration actually allows, designing CI/CD and unit tests for business logic that genuinely matters, and confronting the operational edges of a two-project setup that access levels alone don't solve.
Learning objectives¶
By the end of today you will be able to:
- Use dbt Catalog's project recommendations to prioritise real, project-wide test and documentation gaps, and judge which are acceptable-by-design
- Systematically audit test coverage across a project you didn't build, and explain what
relationshipstests can and can't validate across a dbt Mesh project boundary - Design a CI/CD pipeline (Slim CI, deferral, job triggers) for two dbt projects that depend on each other
- Identify a real mismatch between a model's documented intent and its access configuration, and fix it with the correct governance mechanism (project-level default vs. per-model override)
- Design a new, genuinely cross-project model end to end, including the governance (access, groups, contracts, versions) it would need before being treated as stable
- Write tests that check internal consistency between two columns derived from the same business logic
- Write a unit test with mocked
given/expectinputs for conditional SQL logic, and explain why some models in a mesh can't be unit tested the way a single-project model can
Relevant projects¶
You'll work across both, more deeply than Group 2:
mediapulse_base- specificallydim_campaigns(check its documentation against its actual access config) and the intermediate models' conditional business logicmediapulse_analytics- specifically thecrmandstreamview_legacydomains (fully self-contained, no mesh dependency) versusfct_content_performance/fct_ad_revenue(mesh-consuming)
See the MediaPulse overview for the underlying business context, and each project's own README.md for how they're structured.