Skip to content

Release

Release takes each reviewed Change to all traffic in stages, with automatic revert.

Outcome

PartThis Process
OutcomeEach Change that passes its verdict reaches every user in stages, and a guardrail breach reverts it automatically.
ReadsChange
LeavesVersion
Runs inEach Startup

Accountable

Engineering Lead, Engineering Team.

Workflows

Who does each step

Release: who does each step5 steps in 1 Workflow, across 3 Roles: Engineering Lead, Reliability Engineer, Content Lead. The table below lists every step.Engineering LeadTomReliability EngineerOttoContent LeadCoraWorkflowRelease a change1Read the Change’s verdict.2 · Change.mergeMerge the Change into a new Version.3 · Version.deployDeploy the Version to 1%, 10%, 50%, thenall traffic.4 · Change.revertRevert automatically when a guardrailMetric drops.5 · Content.createWrite the changelog entry from theChange’s description.Release: who does each step5 steps in 1 Workflow, across 3 Roles: Engineering Lead, Reliability Engineer, Content Lead. The table below lists every step.WorkflowRelease a changeEngineering Lead1Read the Change’s verdict.Engineering Lead2 · Change.mergeMerge the Change into a new Version.Engineering Lead3 · Version.deployDeploy the Version to 1%, 10%, 50%, then all traffic.Reliability Engineer4 · Change.revertRevert automatically when a guardrail Metricdrops.Content Lead5 · Content.createWrite the changelog entry from the Change’sdescription.
Each box is a step, numbered within its Workflow, with the Verb it calls, under the Role it runs as. The table below adds approvals.
WorkflowStepRoleCallsApproval
Release a change1. Read the Change’s verdict.Engineering Lead
Release a change2. Merge the Change into a new Version.Engineering LeadChange.mergeWithin a Mandate
Release a change3. Deploy the Version to 1%, 10%, 50%, then all traffic.Engineering LeadVersion.deployAsks first
Release a change4. Revert automatically when a guardrail Metric drops.Reliability EngineerChange.revertNone
Release a change5. Write the changelog entry from the Change’s description.Content LeadContent.createWithin a Mandate

Events

DirectionWhenWhat happens
InOn Change.reviewedStarts Release a change
OutChange.mergedRaised by step 2 of Release a change
OutVersion.deployedRaised by step 3 of Release a change
OutChange.revertedRaised by step 4 of Release a change
OutContent.createdRaised by step 5 of Release a change

Plays

No Play names this Process.

Controls

Settings

SettingTypeDefaultSaySet with
release.stagesstring1,10,50,100Roll out each release to 1%, 10%, 50%, then everyoneSetting.update

Failure

A failed step retries; when retries run out, the Action goes to the Engineering Lead.

StepOn failure
Release a change 1. Read the Change’s verdict.failed: The verdict is fail, so the Change returns to its author and nothing merges.

Loop

No loop: the path is never randomized, because it serves Revert by query.

Code

Text
Turn on release

Enable

On by default for every Product Template. Process.pause stops new Actions; Actions in progress finish.

Text
Roll out each release to 1%, 10%, 50%, then everyone

Example

A Change to a lesson-booking app passes its verdict and merges as Version 12. It reaches 1% of traffic, then 10%. When the error rate rises at 10%, it reverts on its own and the Engineering Lead gets an Issue.