Workflow docs: instance ID reuse requires the whole workflow tree be terminal#5244
Open
JoshVanL wants to merge 1 commit into
Open
Workflow docs: instance ID reuse requires the whole workflow tree be terminal#5244JoshVanL wants to merge 1 commit into
JoshVanL wants to merge 1 commit into
Conversation
…be terminal The workflow identity docs added for the 1.18 reuse policy removal stated that creating a workflow whose instance ID already exists is rejected in any state, including completed. That never matched the runtime: recreating an instance in a terminal state has been allowed since the workflow engine was introduced, and remains so. Document the contract as enforced from 1.18.2: an instance ID is reusable only once the existing workflow and every child workflow it created, checked recursively, has reached a terminal state (COMPLETED, FAILED, or TERMINATED); otherwise the create request is rejected with a 409 conflict naming the child workflow that is not yet terminal. Purging a workflow (or a retention policy) frees its instance ID. During a rolling upgrade, children hosted by older sidecars are verified only for their own status, so the recursive guarantee applies once all sidecars run a version with the check. Also update the breaking-changes page: the 1.18.0 removal entry now notes that SDK options still exposing the reuse policy (such as reuse_id_policy in the Python SDK) are deprecated and silently ignored by 1.18+ runtimes, and a new 1.18.2 entry records the terminal-tree requirement. Signed-off-by: joshvanl <me@joshvanl.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The workflow identity docs added for the 1.18 reuse policy removal stated that creating a workflow whose instance ID already exists is rejected in any state, including completed. That never matched the runtime: recreating an instance in a terminal state has been allowed since the workflow engine was introduced, and remains so.
Document the contract as enforced from 1.18.2: an instance ID is reusable only once the existing workflow and every child workflow it created, checked recursively, has reached a terminal state (COMPLETED, FAILED, or TERMINATED); otherwise the create request is rejected with a 409 conflict naming the child workflow that is not yet terminal. Purging a workflow (or a retention policy) frees its instance ID. During a rolling upgrade, children hosted by older sidecars are verified only for their own status, so the recursive guarantee applies once all sidecars run a version with the check.
Also update the breaking-changes page: the 1.18.0 removal entry now notes that SDK options still exposing the reuse policy (such as reuse_id_policy in the Python SDK) are deprecated and silently ignored by 1.18+ runtimes, and a new 1.18.2 entry records the terminal-tree requirement.
Thank you for helping make the Dapr documentation better!
Please follow this checklist before submitting:
In addition, please fill out the following to help reviewers understand this pull request:
Description
Issue reference