DATA OPS

Warehouse Table Freshness Sentinel

Checks the max-loaded timestamp of critical Snowflake tables against each table's SLA on a schedule, and pages the data owner in Slack when a table goes stale.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerEvery 15 minutes
  • ActionLoad freshness registry from PostgresPostgreSQLPostgres
  • ActionQuery MAX(loaded_at) per table in SnowflakeSnowflakeSnowflake
  • LogicKeep only tables past their SLA
  • OutputPage owners in Slack with lag vs SLASlack

What it does

Runs a scheduled freshness sweep across a registry of business-critical Snowflake tables. For each table it reads the newest load timestamp, compares the gap to the table's declared SLA (e.g. orders must update hourly, dim_customer daily), and raises an alert only for tables that have actually breached. Fresh tables pass silently so the channel stays quiet until something is wrong.

When to use it

When downstream dashboards or reverse-ETL jobs silently serve stale numbers because an upstream load failed and nobody noticed for hours. Use it to put an explicit freshness SLA on the tables your business depends on.

How it works

  1. 1A schedule fires every 15 minutes.
  2. 2The flow reads the freshness registry (table name, SLA minutes, owner handle) from a Postgres config table.
  3. 3For each table it queries Snowflake for MAX(loaded_at) and computes minutes-since-load.
  4. 4A logic step keeps only tables whose lag exceeds their SLA.
  5. 5Breached tables are grouped by owner and posted to Slack, tagging each owner with the table, current lag, and SLA.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SnowflakeWarehouses, queries, shares.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  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.