get-convex / get-convex/workflow
Allow configuring determinism validation
- Dominant language
- TypeScript
- Stars
- 81
- Forks
- 17
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 4
Description
Currently if you change much of anything in a workflow while there are ongoing workflows, they'll fail.
Allow configuring some things to make it more flexible, if you're willing to think through the edge cases:
1. Allow running new steps: if you add a new step to the beginning of a workflow, existing workflows will run it. If that affects later steps, see (4, 5)
2. Allow out of order steps: if steps change order but the args are the same, allow it. Use the first un-consumed result. If this was actually adding another earlier call to the "same" step (same fn & args), then the later one will re-run as if it's the new one.
3. Allow removing steps: if you remove a step, carry on. If that affects later steps, see (4, 5). This also covers breaking out of a "for" loop early, e.g.
4. Allow re-running steps if their args change (per-step opt-in): If an arg changes, re-run that step, if that step can handle retries.
5. Allow ignoring changed args (per-step opt-in): if you add or modify args for a function, but you're fine with existing workflows using the previous result / not running it for new args.
Add good docs on all this
Contributor guide
Assessment
This issue has not been assessed yet.