feat(rivetkit): actor queue with wait-for-completion support#4088
feat(rivetkit): actor queue with wait-for-completion support#4088NathanFlurry wants to merge 7 commits intomainfrom
Conversation
NathanFlurry
commented
Jan 31, 2026
- Add pull-based durable queue for actors
- Support fire-and-forget and wait-for-completion patterns
- Add c.queue.next() for actors to receive messages
- Add msg.complete() for manual completion with response
- Add persistence & redelivery with exponential backoff
- Add HTTP API for queue operations
- Add docs page for queue messages
|
🚅 Deployed to the pr-8030e0-4088 environment in rivet-frontend
|
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
How to use the Graphite Merge QueueAdd the label merge-queue to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Pull Request Review: Actor Queue with Wait-for-Completion SupportThis PR adds a sophisticated pull-based durable queue system for Rivet Actors with wait-for-completion patterns. The implementation is generally solid with good test coverage. Below are my findings: ✅ Strengths
🔴 Critical Issues1. Race Condition in Completion Waiter ResolutionLocation: Issue: The Fix: Add 2. Incomplete Cleanup of Redelivery TimeoutLocation: Issue: The recovery process marks messages as not in-flight and schedules them for redelivery, but theres no cleanup of the Recommendation: Add cleanup in the actor disposal/shutdown flow to clear
|
1fb8e9a to
b2b375a
Compare
5427e1b to
6feb80a
Compare
Merge activity
|
- Add pull-based durable queue for actors - Support fire-and-forget and wait-for-completion patterns - Add c.queue.next() for actors to receive messages - Add msg.complete() for manual completion with response - Add persistence & redelivery with exponential backoff - Add HTTP API for queue operations - Add docs page for queue messages
The rivetkit package requires Node 22+ but the workflow was using the default Node 20, causing TypeScript type checking failures.
780ddeb to
00360a8
Compare
- Add pull-based durable queue for actors - Support fire-and-forget and wait-for-completion patterns - Add c.queue.next() for actors to receive messages - Add msg.complete() for manual completion with response - Add persistence & redelivery with exponential backoff - Add HTTP API for queue operations - Add docs page for queue messages
