Metadata-Version: 2.4
Name: z4j-dramatiq
Version: 1.4.0
Summary: z4j Dramatiq queue engine adapter (Apache 2.0)
Project-URL: Changelog, https://github.com/z4jdev/z4j-dramatiq/blob/main/CHANGELOG.md
Project-URL: Documentation, https://z4j.dev
Project-URL: Homepage, https://z4j.com
Project-URL: Issues, https://github.com/z4jdev/z4j-dramatiq/issues
Project-URL: Source, https://github.com/z4jdev/z4j-dramatiq
Author: z4j contributors
License: Apache-2.0
License-File: LICENSE
Keywords: dramatiq,queue,rabbitmq,redis,task,z4j
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: System :: Distributed Computing
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: dramatiq>=2.1.0
Requires-Dist: z4j-core<2,>=1.4.0
Provides-Extra: rabbitmq
Requires-Dist: dramatiq[rabbitmq]>=2.1.0; extra == 'rabbitmq'
Provides-Extra: redis
Requires-Dist: dramatiq[redis]>=2.1.0; extra == 'redis'
Description-Content-Type: text/markdown

# z4j-dramatiq

[![PyPI version](https://img.shields.io/pypi/v/z4j-dramatiq.svg)](https://pypi.org/project/z4j-dramatiq/)
[![Python](https://img.shields.io/pypi/pyversions/z4j-dramatiq.svg)](https://pypi.org/project/z4j-dramatiq/)
[![License](https://img.shields.io/pypi/l/z4j-dramatiq.svg)](https://github.com/z4jdev/z4j-dramatiq/blob/main/LICENSE)

The Dramatiq engine adapter for [z4j](https://z4j.com).

Streams every Dramatiq actor lifecycle event 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`](https://github.com/z4jdev/z4j-scheduler).

## What it ships

| Capability | Notes |
|---|---|
| Message lifecycle events | enqueued, started, succeeded, failed, retried, skipped |
| Actor discovery | runtime registry merge + static scan |
| Submit / retry / cancel | direct against the Dramatiq broker |
| Bulk retry | filter-driven; re-enqueues matching messages |
| Purge queue | with confirm-token guard |
| Reconcile task | via Redis / RabbitMQ broker introspection |

Captured via Dramatiq's middleware hook system, your existing actors
do not need to be decorated or modified.

## Install

```bash
pip install z4j-dramatiq
```

Pair with a framework adapter:

```bash
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`](https://github.com/z4jdev/z4j-scheduler) as a separate process.

## Reliability

- No exception from the adapter ever propagates back into Dramatiq
  middleware or your actor code.
- Events buffer locally when z4j is unreachable; workers never
  block on network I/O.

## Documentation

Full docs at [z4j.dev/engines/dramatiq/](https://z4j.dev/engines/dramatiq/).

## License

Apache-2.0, see [LICENSE](LICENSE).

## Links

- Homepage: https://z4j.com
- Documentation: https://z4j.dev
- PyPI: https://pypi.org/project/z4j-dramatiq/
- Issues: https://github.com/z4jdev/z4j-dramatiq/issues
- Changelog: [CHANGELOG.md](CHANGELOG.md)
- Security: security@z4j.com (see [SECURITY.md](SECURITY.md))
