Why z4j exists.
One place to inspect and manage tasks across supported Python queues.
Teams running several Python queues often manage separate tools and procedures. Flower already provides Celery monitoring, remote control and optional persistence. z4j adds a shared interface across supported engines, project roles and an operator audit trail.
Meanwhile the ecosystem diversified. RQ, Dramatiq, Huey, arq, taskiq: each has its own interfaces and operational conventions. A shared management layer can help teams work across them.
z4j is a control plane, not a dashboard. Observation is the easy part. The hard part is a capability-aware action surface (retry, cancel, bulk retry, purge and restart wherever each engine supports them), RBAC, a signed and chained record of who did what, and a secrets story that doesn't leak task args into screenshots. That's what z4j does.
what z4j is not
Honest non-goals
- •
Not a new task queue. z4j integrates with Celery/RQ/Dramatiq/Huey/arq/taskiq. It does not compete with them.
- •
Not a replacement for Prometheus/Grafana. z4j exports metrics so those tools can scrape it; it doesn't try to be a metrics platform.
- •
Not APM. We do tasks deeply, not traces broadly. Pair z4j with Sentry / Datadog / OTel. They complement.
- •
Not Flower. Flower focuses on Celery. z4j focuses on management across supported Python queues.
license model
Split licensing, explained
The brain (server + dashboard), shipped as the z4j umbrella distribution, is AGPL-3.0-or-later.
It's OSI-approved open source, and its network-copyleft clause closes the "SaaS loophole" that plain GPL has.
Every agent package (z4j-core, z4j-bare, z4j-celery, z4j-rq, z4j-dramatiq, z4j-huey, z4j-arq, z4j-taskiq, z4j-django, z4j-flask, z4j-fastapi, and every scheduler adapter) is Apache-2.0. You can import these into any proprietary application, no license questions.
The split is deliberate: the value-bearing service stays under strong copyleft; the SDK and agent layer stays permissive so it can be adopted without friction.
Organizations whose policies disallow AGPL can request a commercial license for z4j. See Pricing.
contributing
How to contribute
z4j is open source on github.com/z4jdev.
We accept contributions via pull request. DCO sign-off (git commit -s) is required. No CLA.
The highest-leverage contribution is a new engine adapter. Each adapter is roughly 900 to 5,000 lines depending on how much of the engine's control surface it can safely expose, and it implements the same protocol as the existing adapters. See the wire protocol reference on docs.z4j.com for the Protocol surface.