Simulator: Try bunqueue in Your Browser
The engine, in your browser.
A faithful in-browser model of bunqueue. Push jobs and watch the same lifecycle a real server runs, waiting to active to completed, with failures bouncing through delayed backoff until they land in the dead-letter lane.
Use the scenario chips for one-click demos, or drive everything by hand from the control panel. The transport bar pauses the simulation clock and runs it up to 4× speed. Same FNV-1a shard mapping, same priority ordering, same controls as the real engine.
Waiting
0- Push a job
Delayed
0- No scheduled jobs
Active
0- Start a worker
Completed
0- Nothing done yet
Dead letter
0- No dead letters
Shards fnv1a(queue) & 7
Throughput last 60s
Workers
No workers. Start one to process jobs.
Events
Quiet so far. Push a job or run a scenario.
What you’re looking at
Section titled “What you’re looking at”- Pipeline: every job as a chip in its state lane. Active chips show live progress; retry chips carry their attempt count (
↻ 2/3) and backoff countdown; dead letters show the failure reason. - Shards: bunqueue maps each queue to a shard with
fnv1aHash(queueName) & SHARD_MASK. A cell flashes when a push lands on it. All jobs of one queue always share one shard. - Throughput: completions per second over the last 60 seconds of simulation time.
- Workers: each card is one worker; the dots are its concurrency slots (filled = busy). Stopping a worker lets in-flight jobs finish first.
- Events: the server log tail: pushes, completions, retries, dead letters, and every control action.
Scenarios to try
Section titled “Scenarios to try”- Burst of 80: bulk-push 80 jobs and watch four worker slots chew through the backlog.
- Priorities win: P9 jobs pushed after a P1 backlog still jump the whole line.
- Scheduled jobs: delayed jobs wait in their lane until the countdown expires.
- Failure storm: at 55% failure rate, retries back off exponentially (1.2s → 2.4s → DLQ). Hit Retry DLQ to give dead letters a fresh attempt budget.
- Rate limited: eight worker slots, but the queue releases only 4 jobs/sec: backpressure you can see.
Then compose your own: pause a queue mid-burst, drain it, or crank the failure rate while a scenario runs, effects stack like they would on a real server.
How it maps to real bunqueue
Section titled “How it maps to real bunqueue”| Mechanic | Simulator | Real bunqueue |
|---|---|---|
| Shard mapping | fnv1aHash(queue) & 7, 8 shards | Same hash, shard count auto-detected from CPU cores |
| Priority order | Higher first, FIFO within a priority (4-ary min-heap) | Same |
| Retries | Exponential backoff, DLQ after 3 attempts | Configurable attempts/backoff per job |
| Rate limit | Token bucket, jobs/sec per queue | RateLimit command |
| Storage | In-memory, resets on reload | SQLite WAL with S3 backups |
| Workers | Simulated processing time (0.45–1.5s; the priority demo uses a slower 1.1–2s worker) | Your code, over TCP or embedded |
Ready for the real thing? Start with the quick start, then meet the Queue and Worker APIs.