Skip to main content

The control plane for
Python task queues

One dashboard for Celery, RQ, Dramatiq, Huey, arq, and taskiq. Retry, cancel, bulk-action, reconcile, and monitor across every engine. Built for Django, Flask, and FastAPI. Self-hosted. Open source.

AGPL-3.0 brain Apache-2.0 adapters No telemetry
$ pip install z4j-brain z4j-django[celery]
# Agent: import next to your Celery / RQ / Dramatiq app
from z4j_django import install
install(brain_url="https://brain.example.com")

# Brain: self-hosted FastAPI + dashboard
docker run -p 7700:7700 z4jdev/z4j:1.0.0
Three deployment paths

Run it your way.

From a homelab Raspberry Pi to a production Kubernetes cluster. Same feature set in every tier.

Supported engines

Every Python task queue that matters.

Each engine adapter is a separate Apache-2.0 pip package. Install only the ones you need. Mix them freely within a project.

Architecture

The same buttons. Every engine.

Other dashboards hide Retry on Huey, disable Bulk-Retry on arq, grey out Cancel on taskiq. z4j does not. One protocol primitive, one UI, every engine.

Engine adapters implement one universal primitive, submit_task(name, args, kwargs), that every task queue can satisfy.

When the brain is asked to retry a Huey task, it reads the original args from its own tasks table and lowers the action to submit_task. The user never knows the difference.

  • Retry / Bulk-Retry / DLQ-Requeue polyfilled on every engine
  • Cancel native on 5 engines
  • Restart Worker native on Celery, graceful self-exit elsewhere
  • Rate Limit Celery only (broker-side primitive)
z4j-core/protocols/queue_engine.py python
 # The one method every engine implements async def submit_task(
    self,
    name: str,
    *,
    args: tuple = (),
    kwargs: dict | None = None,
    queue: str | None = None,
    eta: float | None = None,
    priority: int | None = None,
) -> CommandResult:
    ...
Platform capabilities

What ships in v1.0

Everything below is included on day one. No hidden tiers, no enterprise-only gating.

Framework support

Install into your stack.

First-class adapters for the three major Python web frameworks. Each is a single pip install.

Comparison

How z4j stacks up.

Most dashboards cover one engine and stop at 'view.' See how z4j compares to the tools you might already be running.

Security posture

Built for production from day one.

Two rounds of pre-release security audits. No open HIGH or CRITICAL findings.

HMAC-chained audit log

Per-row HMAC plus prev_row_hmac chain. Tamper-evident against DBA-level row deletions.

Defense-in-depth rate limits

IP buckets on login (20/min), invitations (30/min), password-reset (10/min). Inline pruning, bounded memory.

Argon2id password hashing

64 MiB memory, 3 iterations. Policy: 3-of-4 character classes plus ~1,500-entry denylist.

Redaction pipeline

Recursive scrubber at the agent, defense-in-depth re-scrub on the brain. Zero unredacted args on the wire.

Wire-protocol HMAC

Every frame signed (HMAC v2). Replay guard (+/-60s + nonce + monotonic seq). Session-bound.

SSRF-hardened

Private-IP block + DNS-rebinding resolve-before-dial + scheme allow-list for webhooks, SMTP hosts, and channel URLs.

Ready to get started?

One Docker command. No credit card. No telemetry. No commercial-only gates.