How a rollout works
When you start a rollout, Traffical records the current allocation bucket ranges as the target state. At each step, it scales every allocation’s range proportionally toward that target:treatment at 5% stay there at 10%, 50%, 100%. Stability holds as long as the rollout only moves forward.
When the rollout moves backward — via rollback_one_step, full_rollback, a manual set-percentage to a lower value, or any other shrinking action — bucket ranges shrink and users near the edge fall out of the new range, reverting to the fallback policy or to the parameter default. That’s the intended behavior: a rollback should pull users back, not strand them in a variant the rollout has decided to retreat from.
A lower-priority fallback policy in the same layer catches traffic outside the rollout’s current ranges. For single-allocation rollouts, this is just “everyone not yet in the new variant gets the old behaviour”.
Configuring a rollout
In the dashboard, open a policy and add a rollout configuration:- Target percentage — usually
100. - Ramp — either continuous (
incrementPercentageeverywindowSizeMinutes) or scheduled (an explicit list of{ percentage, scheduledAt }steps). - Health checks — metrics to evaluate before each step.
- Rollback strategy — what to do if a health check fails.
Health checks
Health checks reference metric definitions, not raw events. Two flavours:- Absolute — compare the metric against a fixed threshold (e.g. error rate ≤ 0.1%).
- Relative — compare against a baseline policy (e.g. conversion rate no worse than 5% below baseline).
minimumExposures before it runs. If there’s not enough data yet, the rollout holds at the current step rather than passing or failing.
| Field | Description |
|---|---|
metricId | The metric to evaluate |
operator | gte, lte, gt, lt |
thresholdValue | Absolute threshold |
baselinePolicyId | (optional) compare against another policy |
relativeDeltaPercent | (optional) max acceptable degradation, e.g. 5 for 5% |
minimumExposures | Required sample size before evaluation |
windowMinutes | Lookback window |
Rollback strategies
When a health check fails, the configured action fires:| Strategy | What happens |
|---|---|
alert_only | Log a warning, continue ramping |
pause | Stop at the current percentage, mark paused |
rollback_one_step | Go back one increment, then pause |
full_rollback | Snap back to 0%, pause |
Warm-up windows
After each step, the rollout waitswarmupWindows evaluation cycles (default 2) before evaluating health. This gives the new traffic level time to produce meaningful data before the next decision.
Safety limits
maxStepsPerRuncaps how many advances the scheduler will do in a single evaluation (default 3). This prevents “catch-up” jumps after an outage where the scheduler missed many windows.- Stable while ramping forward — when the rollout advances monotonically, ranges only grow, so no user is reassigned. When the rollout shrinks (manual lower percentage, rollback action), users near the new range edge fall back to the fallback policy or defaults.
When a rollout completes
When the rollout reaches its target percentage, the scheduler stops advancing. TheonComplete action determines what happens to other policies in the same layer:
pause_lower_priority— lower-priority policies in the layer are paused (the rollout has effectively replaced them)none— nothing happens; the rollout policy is now at full traffic alongside whatever else was running
completed, and archive it.
Manual override
You can pause, resume, jump to a specific percentage, or roll back manually from the dashboard at any time. The scheduler respects whatever state you put the rollout in.Lifecycle
| Phase | Typical % | Question |
|---|---|---|
| Canary | 1–5% | Is it safe? |
| Experiment | 50/50 | Is it better? |
| Rollout | ramp 5% → 100% | Can we ship the winner? |
| Complete | 100% (new default) | Archive the policy |
Feature flags as rollouts
A boolean parameter with a rollout policy is a feature flag with built-in safety:Next steps
Feature flags
Boolean parameters with rollout safety.
Progressive rollout pattern
Full walkthrough with metric setup.