Disk queue
Durable job queue on local disk — atomic claim via rename, no Redis. Any Resuma process can enqueue; any process can claim pending jobs.
LIVE
Enqueue + stats
Calls enqueue("docs", "docs_showcase", …) — same disk-backed queue store as production apps.
Layout
.resuma/queue/{name}/
pending/ ← new jobs
processing/ ← claimed by one process
done/ ← graph finished successfully
failed/ ← start failed or graph failed/cancelledEnqueue from Rust
use resuma::prelude::*;
let resp = enqueue("default", "summarize", json!({ "text": "..." })).await?;
// resp.message_id, resp.queueEnqueue from HTTP
POST /_resuma/queue/default
Authorization: Bearer $RESUMA_EXEC_API_KEY
Content-Type: application/json
{ "worker": "summarize", "input": { "text": "..." } }Stats
GET /_resuma/queue/default/stats
// { "pending": 2, "processing": 1, "done": 10, "failed": 0 }Multi-process
Each process runs a background consumer when init_exec() runs (automatic on FlowApp::serve). Claim uses rename(pending → processing) — only one winner per job. Tune poll interval with RESUMA_QUEUE_POLL_MS (default 200).