DATA OPS

dbt Freshness SLA Watcher: Pause Dependent Models on Late Loads

Checks the freshness of upstream source tables on a schedule, and when a load lands past its SLA it disables the downstream dbt models that depend on it and posts a notice…

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerEvery 30 minutes (schedule)
  • ActionQuery MAX(loaded_at) per source tableSnowflakeSnowflake
  • LogicFlag sources past their SLA threshold
  • ActionPause dependent dbt models via dbt Cloud APIHTTP webhook
  • OutputPost late-source + held-model notice to SlackSlack

What it does

This watcher polls your warehouse for the last-loaded timestamp of each tracked source table, compares it against a per-source SLA, and when a source is late it proactively pauses the dependent dbt transforms instead of letting them run on stale inputs. Every action is announced in Slack with the offending source, how late it is, and exactly which models were held.

When to use it

Run it when an upstream extract feeds a chain of dbt models and you cannot tolerate transforms silently computing on yesterday's data. It is built for teams who would rather skip a run than publish wrong numbers.

How it works

  1. 1A schedule fires every 30 minutes.
  2. 2Query Snowflake for MAX(loaded_at) per tracked source table.
  3. 3A logic step flags any source where the gap exceeds its SLA threshold.
  4. 4For each breached source, call the dbt Cloud API via webhook to set its dependent models to a paused/skip state.
  5. 5Post a Slack message listing each late source, its lateness, and the models that were held.
  6. 6Output a structured summary record of the run for the audit trail.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SnowflakeWarehouses, queries, shares.
  2. 2
    Connect HTTP webhookTrigger any URL on agent actions.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.