Skip to content

What is z4j?

z4j is a control plane for Python task infrastructure. It gives Django, Flask, FastAPI, and bare-Python applications a modern dashboard for Celery, RQ, Dramatiq, Huey, arq, and taskiq - with persistent history, unified actions (retry / cancel / bulk-retry / restart), schedule CRUD, HMAC-chained audit logging, and secure-by-default redaction - without touching your existing task code.

z4j integrates with the queue you already run. If you’re on Celery today, stay on Celery. Install one pip package. The dashboard populates within seconds.

Flower is a Celery viewer. z4j is a control plane:

  • Observation - task events, worker state, schedule runs, error rates.
  • Action - retry, cancel, bulk-retry, restart, purge - on every engine.
  • Schedule CRUD - create/update/delete periodic tasks from the UI (on supported schedulers).
  • Persistent history - PostgreSQL-backed audit trail, survives broker restarts.
  • Multi-engine - run Celery + RQ in the same org without switching tools.
┌──────────────────────────────┐
│ z4j-brain │ FastAPI + React dashboard
│ (Postgres persistence + │ + WebSocket server for agents
│ unified action surface) │ AGPL v3
└──────────────▲───────────────┘
│ WebSocket (outbound from your app)
┌──────────────┴───────────────┐
│ z4j-<framework> │ thin pip package you install in
│ + z4j-<engine> adapters │ your app (Django/Flask/FastAPI/bare)
│ │ Apache 2.0
└──────────────────────────────┘
Celery / RQ / Dramatiq / … your existing task code, unchanged
FeatureWhat it does
Task listEvery enqueue/start/success/retry/fail event across every engine, one timeline
Unified actionsRetry/cancel/bulk-retry behave the same on every engine - brain polyfills what the native API lacks
Schedule CRUDCreate, update, pause, delete periodic tasks (supported schedulers)
Audit logHMAC-chained, tamper-evident. Every admin action, every auth event
RBACProject-scoped roles (owner / admin / operator / viewer) + multi-user invitations
Rate limitsPer-endpoint on every unauthenticated path
ReconciliationBackground worker reconciles “running forever” tasks against real engine state
RedactionSecrets never leak to events - pattern-based + field-name heuristics

Three paths, three audiences. Pick the one that matches what you are doing:

If you are…Run
Evaluating (one-venv demo)pip install z4j — gets brain + core in one command. AGPL-3.0.
Instrumenting a production apppip install z4j-<framework> z4j-<engine> — agents only, Apache 2.0.
Running the brain in productiondocker run z4jdev/z4j for the brain; agents via pip in the app.

See the install guide for the full breakdown of each path and their licence implications.