Queue flow
Enable and create queues
Set
[capabilities].queue = true in tovuk.toml, then run
tovuk deploy --dry-run --json so the agent can confirm Queue meters,
limits, and required fixes before provisioning resources. Create the
dead-letter queue before the primary queue when failed work needs a
separate recovery path.Produce work
Send one job with
tovuk queue send, send batches with
tovuk queue send-batch, or use the same Queue API routes from the
dashboard. Add --delay-seconds when work should wait before it becomes
visible to the consumer.Consume in Rust
Read
TOVUK_QUEUE_JOBS from the runtime environment for the example queue,
then handle queue deliveries in the Rust worker at
POST /.tovuk/queues/<queue>. Return 2xx only after the batch has been
handled safely.CLI workflow
Dashboard
Dashboard Queue controls are available athttps://tovuk.com/account/resources and
https://tovuk.com/<handle>/resources. The Resources view can read recent
Queue messages, read Queue metrics, send one Queue message, and send one Queue
batch through the same metered Queue API routes as the CLI. It can also update Queue retries,
retention, batch size, batch timeout, and dead-letter Queue settings.
The dashboard uses these Queue API routes:
PUT /v1/services/{service_id}/queues/{queue}GET /v1/services/{service_id}/queues/{queue}/messagesGET /v1/services/{service_id}/queues/{queue}/metricsPOST /v1/services/{service_id}/queues/{queue}/messagesPOST /v1/services/{service_id}/queues/{queue}/messages/batch
API
POST /v1/services/{service_id}/queuesPUT /v1/services/{service_id}/queues/{queue}GET /v1/services/{service_id}/queues/{queue}/messagesPOST /v1/services/{service_id}/queues/{queue}/messagesGET /v1/services/{service_id}/queues/{queue}/metricsPOST /v1/services/{service_id}/queues/{queue}/messages/batchDELETE /v1/services/{service_id}/queues/{queue}
POST /.tovuk/queues/<queue>.
Public traffic to /.tovuk/* is blocked.
Meters and caps
Queue usage is metered asqueue_operations.
Limits
- Queue messages are capped at 128 KB total.
- Send batches accept up to 100 messages and must fit 256 KB.
- Consumer batches can process up to 100 messages.
- Batch waits can be configured up to 60 seconds.
- Visibility timeouts can be configured up to 12 hours.
- Send delays can be configured up to 24 hours.
- Consumer handlers have a 15 minute wall-clock limit.