fastworker vs Dramatiq: brokerless vs Redis-backed Python task queue
fastworker is a brokerless Python task queue (no Redis required). Dramatiq is a fast, reliable task queue that requires a broker (Redis or RabbitMQ). The trade-off: simplicity vs ecosystem maturity.
$ pip install fastworker fastworker is a Rust-backed drop-in for
Dramatiq. Same API, faster hot paths.
Install: pip install fastworker.
No broker required. Built-in SQLite control plane.
fastworker vs Dramatiq: the facts
No broker required. Built-in SQLite control plane.
Requires Redis or RabbitMQ as a broker.
1K-10K tasks/min on a single node.
Scales with the broker; Redis-backed Dramatiq can handle 10K+ tasks/min.
Priority queues (critical/high/normal/low) out of the box.
Priority via message priority flags (Redis) or routing (RabbitMQ).
Auto worker discovery on the same network.
Manual worker registration.
Built-in web dashboard.
No built-in dashboard (use dramatiq-dashboard, a separate project).
OpenTelemetry tracing built in.
Requires dramatiq-prometheus or custom middleware.
FastAPI integration via a single dependency.
FastAPI integration via dramatiq-abp or manual wiring.
MIT licensed.
LGPL licensed.
Benchmarks
Reproduction instructions in the project README. Numbers measured on AMD Ryzen 9 7950X, 64GB DDR5, NVMe SSD, Python 3.12.
| Metric | fastworker | Dramatiq |
|---|---|---|
| External services to operate | 0 | 1 (Redis or RabbitMQ) |
| Cold start to first task | ~1s | ~2-3s (broker connection) |
When to use fastworker
- You want to ship background jobs in Python without standing up Redis or RabbitMQ.
- You have moderate task volume (1K-10K/min) on a single node.
- You want priority queues, dashboards, and tracing out of the box.
When NOT to use fastworker
- You already operate Redis and want Dramatiq's middleware ecosystem.
- You need to scale to 100K+ tasks/min across multiple brokers — Dramatiq + Redis is more battle-tested there.
Frequently asked questions
Is fastworker a drop-in for Dramatiq?
No — the task decorator API is similar but the configuration is different. Migration from Dramatiq to fastworker is straightforward (rewrite the decorator + remove the broker config), typically a half-day of work.
How does fastworker persist tasks without a broker?
fastworker embeds a SQLite-backed control plane on the master process. Workers register via mDNS or static config; the master hands out work over loopback or mTLS.
What license is fastworker under vs Dramatiq?
fastworker is MIT licensed. Dramatiq is LGPL licensed — which has redistribution restrictions that matter for some enterprise procurement teams.