Replace durable-stream attachment polling with lifecycle recovery - #3958
Merged
Merged
Conversation
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
…m-expiry Amp-Thread-ID: https://ampcode.com/threads/T-01a0c3f9-2a89-745e-a286-486bd9969a77 Co-authored-by: Amp <amp@ampcode.com> # Conflicts: # golem-worker-executor/src/services/worker_fork/export.rs # golem-worker-executor/src/storage/indexed/mod.rs
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Remove renewal records and operations while preserving preparation, exact authority checks, epoch fencing, and deletion dependencies. Oracle approved this bounded protocol stage. Targeted stream, session, projection, worker, and expiry tests: 339 passed, 1 existing ignored. Lifecycle delivery and poller removal follow separately. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Keep per-reader publication identity exact while allowing independent readers to share the same destination binding. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
…thority Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Use committed publication and attachment evidence, preserving fork and revert boundaries. Retry only on retained-history changes, not ordinary append progress. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Prove historical destination acceptance outside the source writer, then revalidate the retained intent and preserve its attribution when committing one idempotent receipt. Keep reader disposition separate from attachment history retention. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Park healthy attachment maintenance until committed lifecycle changes. Repair lost activation on an authorized read, preserve failure retries, and remove unused forwarding acceptance receipts and inspector-only indexes. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Preserve the lifecycle-driven stream recovery changes alongside upstream deferred ephemeral completion and retired-worker metadata handling. Co-authored-by: Amp <amp@ampcode.com> Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
✅ Deploy Preview for golemcloud canceled.
|
Preserve executor-shutdown cancellation and joining alongside event-driven stream recovery. Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0cd74-b013-75dd-b5bf-9d5f8a21e245 Co-authored-by: Amp <amp@ampcode.com>
|
📖 Docs preview: https://docs-4vp93f2gv-golem-cloud.vercel.app Built from commit |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Behavior
Follow-up to #3928 and #3938. #3928 has merged, so this PR targets main; the original expiry branch merge remains in this branch ancestry.
Deliberate tradeoff
Stale producer-side attachment bookkeeping is lazy: a healthy resident producer need not discover a remote consumer disappearance until later lifecycle activity or deletion. Deletion reconciles dependencies before deciding safety. This does not add atomic storage transactions, an outbox redesign, a global cleanup scan, or payload copying. It does change attachment/forwarding records within the existing oplog model; no compatibility path is provided, per repository policy.
The durable-stream maintenance poll is gone, not every timer in the executor. Expiry scheduling, protocol long polls, and bounded retries of unfinished/failed recovery retain their separate responsibilities.
Validation
cargo clippy -p golem-common -p golem-worker-executor --all-targets --no-deps -- -D warningspassed.git diff --checkpassed.cargo make generate-configsand direct executor config drift checks passed.Full GitHub CI run passed, including all five worker-executor groups, service and CLI integration groups, workspace unit/drift checks, and SDK checks. The entire executor/service/CLI integration matrix was run in CI rather than locally.