Repository navigation
docs(reconciler): state what the create recovery retry assumes - #106
Merged
Merged
Conversation
After the recovery grace period an unresolved create is retried. That is safe only when Observe finds the resource by a key known before Create returns, or Create is idempotent on that key. Where the backend assigns the identifier and Observe can look the resource up only by it, the retry makes a second object. The overview and the option comment now say so. Behaviour is unchanged. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8HNbFHt8c2mEcAunQEGAG
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.
What
After the recovery grace period (2m by default) the reconciler retries a create whose outcome was never recorded. The docs did not say when that retry is safe. They now do, in
docs/overview.md("What the retry assumes") and in theWithCreateRecoveryGracePeriodcomment:Observefinds the resource by a key the managed resource carries beforeCreatereturns, orCreateis idempotent on that key.If neither holds (the backend assigns the identifier and
Observecan look the resource up only by it), the retry can make a second object. The fix for such a kind is a lookup that needs no assigned identifier; a longer grace period only delays the retry.Why
unstructured-runtime#93 was decided the other way (a distinct Ready reason, a human resolves) because its consumers include kinds with vendor-assigned identity. The consumers of this library were checked per kind and find their resources by keys known before
Create, or have an idempotentCreate, so the behaviour here stays.Behaviour is unchanged; docs and a comment only.
🤖 Generated with Claude Code
https://claude.ai/code/session_01N8HNbFHt8c2mEcAunQEGAG