FastWorker
Alpha v0.1.1 · MIT Licensed · Python 3.12+

Distributed Python tasks.
Zero brokers.

FastWorker is a brokerless task queue for Python. No Redis. No RabbitMQ. Just 2–3 Python processes, a built-in web dashboard, and native FastAPI integration.

✓ Brokerless ✓ Built-in dashboard ✓ FastAPI native ✓ Priority queues ✓ OpenTelemetry

Three steps. Three terminals.

Define tasks, start the control plane, submit from your app. No broker setup, no YAML.

1 · Define

Write a task module

# mytasks.py
from fastworker import task

@task
def add(x: int, y: int) -> int:
    return x + y

@task
def send_email(to: str, body: str) -> bool:
    # ... your logic
    return True
2 · Run

Start the control plane

# Terminal 1: start the control plane
# (GUI auto-starts at http://127.0.0.1:8080)
fastworker control-plane --task-modules mytasks

# Terminal 2+: add subworkers for scale
fastworker subworker \
  --worker-id w1 \
  --control-plane-address tcp://127.0.0.1:5555 \
  --base-address tcp://127.0.0.1:5561 \
  --task-modules mytasks
3 · Submit

Call from FastAPI

# app.py  (FastAPI example)
from fastapi import FastAPI
from fastworker import Client

app = FastAPI()
client = Client()

@app.on_event("startup")
async def _start():
    await client.start()

@app.post("/add/{x}/{y}")
async def add(x: int, y: int):
    task_id = await client.delay("add", x, y)
    return {"task_id": task_id}

Everything you need. Nothing you don't.

Task queues usually mean orchestrating 4–6 services. FastWorker is 2–3 Python processes with sensible defaults.

Brokerless Architecture

No Redis, RabbitMQ, or Kafka. FastWorker uses direct Python-to-Python NNG messaging. One less service to run, monitor, and secure.

Built-in Management GUI

Real-time Vue + Tailwind dashboard ships with the control plane. Monitor workers, queues, and task history out of the box at port 8080.

FastAPI Native

Submit tasks from async request handlers with one line. Non-blocking submission, result polling, and task-completion callbacks.

Automatic Worker Discovery

Subworkers find the control plane and register automatically. Scale horizontally by spawning more processes — zero reconfiguration.

Priority Queues

Four priority levels (critical, high, normal, low) with automatic load balancing to the least-loaded subworker.

OpenTelemetry Support

Drop-in distributed tracing and metrics. Plug into Jaeger, Honeycomb, or any OTLP collector to trace a task end to end.

How it stacks up

FastWorker trades extreme scale for operational simplicity. It's the pragmatic choice for teams shipping FastAPI services at 1K–10K tasks/min.

Capability FastWorker Celery RQ Dramatiq
External broker None Redis / RabbitMQ Redis Redis / RabbitMQ
Services to run 2–3 Python procs 4–6+ 3–4 3–5
Built-in dashboard Yes Flower (separate) rq-dashboard Third-party
Priority queues 4 levels built-in Configurable Multi-queue Multi-queue
FastAPI integration Native async Sync wrapper Sync wrapper Sync wrapper
Setup time < 5 minutes 30+ minutes 15 minutes 15 minutes

From the knowledge base

Guides, comparisons, and articles on FastAPI, async Python, and task-queue architecture.

Browse everything →
FastAPI Consulting · Neul Labs

Ship production FastAPI faster.

Work directly with Dipankar Sarkar, the maintainer of FastWorker, on FastAPI architecture reviews, async migrations, background-job design, and performance audits for Python teams shipping at scale.