z4j-dramatiq
The Dramatiq engine adapter for z4j.
Streams supported Dramatiq actor lifecycle events from your workers to the
z4j and accepts operator control actions from the dashboard.
Dramatiq has no upstream scheduler, so for periodic schedules pair with
z4j-scheduler.
Compatibility
- Dramatiq 1.14+ and <3 (capped below the eventual Dramatiq 3 breaking-major)
- Python 3.11+
Full per-adapter matrix at https://docs.z4j.com/reference/compatibility/.
What it ships
| Capability | Notes |
|---|---|
| Message lifecycle events | received, started, succeeded, retried, failed |
| Actor discovery | Dramatiq's runtime broker registry |
| Submit | direct against the Dramatiq broker |
| Retry | only with complete operator-supplied replacement args and kwargs |
| Cancel pending task | requires z4j-dramatiq[abort] and Abortable middleware; does not interrupt running work |
| Purge queue | with confirm-token guard |
| Reconcile task | reports honest unknown (Dramatiq has no queryable-by-id result store); the brain's event-derived state stays authoritative |
Captured via Dramatiq's middleware hook system, your existing actors do not need to be decorated or modified.
Install
pip install z4j-dramatiq
Bulk retry and dead-letter replay are not advertised because stock Dramatiq
does not expose recoverable completed-message or dead-letter APIs. Pending-task
cancel is advertised only when the external dramatiq-abort Abortable
middleware is installed. z4j uses its pending-only mode because interrupting a
running task can interact with Dramatiq retries and enqueue another attempt.
Pair with a framework adapter:
pip install z4j-django z4j-dramatiq # Django
pip install z4j-flask z4j-dramatiq # Flask
pip install z4j-fastapi z4j-dramatiq # FastAPI
pip install z4j-bare z4j-dramatiq # framework-free worker
For schedules, install z4j-scheduler as a separate process.
Reliability
- Lifecycle-capture failures are isolated from Dramatiq middleware and actor code; capture hooks make no brain network request inline.
- The in-process event queue and SQLite outbound buffer are bounded. Queue overflow drops new events and buffer pressure evicts oldest rows; both losses are logged.
Documentation
Full docs at docs.z4j.com/engines/dramatiq/.
License
Apache-2.0, see LICENSE.
Links
- Homepage: https://z4j.com
- Documentation: https://docs.z4j.com
- PyPI: https://pypi.org/project/z4j-dramatiq/
- Issues: https://github.com/z4jdev/z4j-dramatiq/issues
- Changelog: CHANGELOG.md
- Security: security@z4j.com (see SECURITY.md)
Metadata
Release files for z4j-dramatiq 1.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| z4j_dramatiq-1.12.0.tar.gz | 47.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| z4j_dramatiq-1.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.7 kB
Release files / z4j_dramatiq-1.12.0.tar.gz
| Download URL | z4j_dramatiq-1.12.0.tar.gz |
|---|---|
| Size | 47.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
997d6d11b1bc600b10988f2eb34a7b72789a8ff108d0881f0f6b2f5527600470
|
|
BLAKE2b-256 checksum How to use checksums |
3c637825bb4662d62efb1d9616c51e78e080f5c5baadba96b6b0c2398c4acaa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / z4j_dramatiq-1.12.0-py3-none-any.whl
| Download URL | z4j_dramatiq-1.12.0-py3-none-any.whl |
|---|---|
| Size | 37.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc9d92f12919727748e74ec7ccb0a6c8eadcf9a37ef28c68dfd62591929e409b
|
|
BLAKE2b-256 checksum How to use checksums |
88930e7fa98f7961915c68125c69225afba246755db83bf8508a5df57f6b03fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|