Queue Messages
Send durable queue messages to Rivet Actors and consume them from run loops.
Rivet Actors include a pull-based queue for durable background processing.
Send Messages (Client)
Use handle.send(name, body) for fire-and-forget:
Use wait: true for request/response:
Queue Schema
Define queue message types under queues. Use complete when a queue supports manual completion responses.
Receive Messages (Actor)
next
next returns an array and can block until messages are available.
If no messages arrive before timeout, next returns [].
tryNext
tryNext is non-blocking and immediately returns [] when empty.
iter
iter returns an async iterator yielding one message at a time.
Iterate All Queue Names
Use iter() without names to consume across all queue names.
Completable Messages
Use completable: true to receive messages that expose message.complete(...).
The message stays in the queue until message.complete(...) is called.
Abort Behavior
Use c.aborted for loop exit conditions when needed.
Never wrap c.queue.next(...) in try/catch for normal shutdown handling. Queue receive calls throw special abort errors during actor shutdown so the run handler can stop cleanly.