get-convex / get-convex/workflow

Allow configuring determinism validation

Open
#35 8 comments 1 reaction 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.