Release
Release takes each reviewed Change to all traffic in stages, with automatic revert.
Outcome
| Part | This Process |
|---|---|
| Outcome | Each Change that passes its verdict reaches every user in stages, and a guardrail breach reverts it automatically. |
| Reads | Change |
| Leaves | Version |
| Runs in | Each Startup |
Accountable
Engineering Lead, Engineering Team.
Workflows
| Workflow | Runs | Team |
|---|---|---|
| Release a change | on Change.reviewed | Engineering Team |
Who does each step
| Workflow | Step | Role | Calls | Approval |
|---|---|---|---|---|
| Release a change | 1. Read the Change’s verdict. | Engineering Lead | ||
| Release a change | 2. Merge the Change into a new Version. | Engineering Lead | Change.merge | Within a Mandate |
| Release a change | 3. Deploy the Version to 1%, 10%, 50%, then all traffic. | Engineering Lead | Version.deploy | Asks first |
| Release a change | 4. Revert automatically when a guardrail Metric drops. | Reliability Engineer | Change.revert | None |
| Release a change | 5. Write the changelog entry from the Change’s description. | Content Lead | Content.create | Within a Mandate |
Events
| Direction | When | What happens |
|---|---|---|
| In | On Change.reviewed | Starts Release a change |
| Out | Change.merged | Raised by step 2 of Release a change |
| Out | Version.deployed | Raised by step 3 of Release a change |
| Out | Change.reverted | Raised by step 4 of Release a change |
| Out | Content.created | Raised by step 5 of Release a change |
Plays
No Play names this Process.
Controls
Settings
| Setting | Type | Default | Say | Set with |
|---|---|---|---|---|
release.stages | string | 1, | Roll out each release to 1%, 10%, 50%, then everyone | Setting.update |
Failure
A failed step retries; when retries run out, the Action goes to the Engineering Lead.
| Step | On 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
Turn on releaseEnable
On by default for every Product Template. Process.pause stops new Actions; Actions in progress finish.
Roll out each release to 1%, 10%, 50%, then everyoneExample
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.