Workflow versioning lets you update a workflow’s logic without breaking runs that are already in progress.Documentation Index
Fetch the complete documentation index at: https://openworkflow.dev/llms.txt
Use this file to discover all available pages before exploring further.
Why Version Workflows?
Imagine you have a “process-order” workflow and you want to change how it validates orders. But there are already 50 order workflows running with the old logic. If you just swap in the new code, those in-flight runs might fail because their saved step history doesn’t match the new code path. Versioning solves this by letting you run both versions side by side:- Existing runs continue with the old logic
- New runs use the updated version
- Once all old runs finish, you remove the old version
Specifying a Version
Add aversion to your workflow spec:
Running Multiple Versions
Register multiple versions of the same workflow with different implementations:Migration Strategy
A typical version migration:- Deploy new version alongside old - Register both versions in your worker
- Start new runs on new version - Update your client code to use the new version
- Wait for old runs to complete - Monitor the dashboard for remaining v1 runs
- Remove old version - Once all v1 runs are finished, remove the old implementation
Version Matching
The worker matches workflow runs to implementations by name and version:| Run Version | Registered Versions | Matched |
|---|---|---|
1.0.0 | 1.0.0, 2.0.0 | 1.0.0 |
2.0.0 | 1.0.0, 2.0.0 | 2.0.0 |
null | null, 1.0.0 | null |
3.0.0 | 1.0.0, 2.0.0 | No match (retry) |
pending with retry backoff so a worker that has the matching version
can pick it up later.