ENGINEERING

Canary-versus-baseline crash-free comparison gate

Compares the new release's crash-free session rate against the outgoing release's rate over the same window and only promotes on Vercel if the canary is no worse than baseline…

CategoryEngineering
Enginesim
Difficultyadvanced
Triggerwebhook
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerVercel canary deployment ready webhookVercelVercel
  • ActionRead baseline release tag from PostgresPostgreSQLPostgres
  • ActionFetch Sentry crash-free for canary + baselineSentrySentry
  • LogicCanary within tolerance margin of baseline?
  • ActionPromote and record new baseline, or rollbackVercelVercel
  • OutputSlack side-by-side comparison + verdictSlack

What it does

Instead of judging a release against a fixed absolute threshold, it judges it relative to the version it replaces. The flow pulls crash-free rates for both the new canary release and the current baseline release from Sentry and promotes only when the canary holds within an allowed regression margin of the baseline.

When to use it

Use it when a fixed threshold is misleading — for example an app whose normal crash-free rate sits at 98% rather than 99.9%, where an absolute bar would either block everything or pass regressions. Relative comparison adapts the gate to each app's real baseline.

How it works

  1. 1A Vercel deployment-ready webhook provides the new canary release version.
  2. 2The flow reads the current baseline (outgoing) release tag from Postgres.
  3. 3It fetches Sentry crash-free rates for both releases over a matched recent window.
  4. 4A branch computes the delta and checks whether the canary stays within the tolerance margin of baseline.
  5. 5If the canary is within margin it promotes on Vercel and records the new baseline; otherwise it rolls back.
  6. 6It posts a side-by-side Slack comparison of both rates and the resulting decision.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect VercelDeploys, runtime logs, analytics.
  2. 2
    Connect SentryErrors, performance, releases.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.