Loading…
Versioning in Stripe Workflows: Ship workflow changes with confidence
Tanya Boiteau
- Source
- Stripe
- Published
- Added to Yomu
Summary
Stripe Workflows previously required teams to edit live workflow definitions directly, leaving no draft state, historical definitions, straightforward rollback, or reliable way to inspect which configuration shaped an older run. Versioning addresses this with a dedicated draft for iteration, immutable numbered published versions, and version history that can include descriptions, authors, status, and run counts. Publishing creates a complete snapshot containing steps, branches, conditions, variable references, calls, and configuration; new runs use it immediately, while in-progress runs finish on the version they started with. Each run records its exact version and exposes the workflow definition, including taken and untaken branches, while a past version can seed a new draft for rollback; versioning is available in Stripe Workflows, where new workflows include a draft by default.
Context
Updating a live workflow previously overwrote its last version, with no draft state, historical definitions, easy rollback, or way to determine who changed logic and why. Troubleshooting older runs was limited because run details showed only the path taken, while the workflow definition might have changed or no longer existed.
Approach / What changed
Versioning separates editing from production through a dedicated draft, immutable numbered published versions, and version history. Publishing freezes a complete workflow snapshot and makes it active; future edits occur in a draft, and past versions can be used to create new drafts. Versions can include descriptions, and runs record the exact version used.
Takeaways
- Drafts let teams add steps, branches, conditions, messages, or other logic without affecting the active production version until publication.
- Published versions are immutable snapshots. New runs use the newly published version immediately, while in-progress runs finish on the version they started on.
- Each run records its workflow version, allowing inspection of the definition and both taken and untaken branches; a known version can also support rollback.