Skip to content

feat(rollout): gate each ramp step on the new version's calls and errors - #89

Open
scott-lowe-vapi wants to merge 1 commit into
gradual-deploy-rollout-tickerfrom
gradual-deploy-rollout-health-gate
Open

scott-lowe-vapi wants to merge 1 commit into
gradual-deploy-rollout-tickerfrom
gradual-deploy-rollout-health-gate

Conversation

@scott-lowe-vapi

@scott-lowe-vapi scott-lowe-vapi commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Support partial GitOps promotions using traffic splitting

Part of DEPLOY-205. 4 of 5 (optional): gate each ramp step on the new version's calls.

What changes

  • rollout.healthGate: { minCalls, maxErrorRateDelta } (defaults 20 and 2 points).
  • Before a due step, the ticker reads per-version calls since the current step from GET /traffic-allocations/metrics (hourly buckets, window clamped to the endpoint's 2000-bucket cap). It waits for minCalls on the new version, then aborts if the new version's error rate is more than maxErrorRateDelta points above the old one's.
  • An "error" uses the dashboard's rule: the ended reason names an error.
  • The abort note carries reason=error-rate+N.Npp. Reasons never reach PostHog: the event never sends the description.
  • It runs after, never instead of, a check: gate.

Evidence

Config, decision (wait, pass, abort, no calls), the metrics read against a local stub, and the ticker's window are tested. 682 tests pass.

🤖 Generated with Claude Code

rollout.healthGate makes the ticker read each version's calls since the
current step from /traffic-allocations/metrics before moving on: it waits for
minCalls on the new version, then aborts the ramp (reason in the note) when
its error rate is more than maxErrorRateDelta points above the old version's.
Errors use the dashboard's rule, an ended reason that names an error.

Part of DEPLOY-205.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

scott-lowe-vapi commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant