Metadata-Version: 2.4
Name: patchwork-postponer
Version: 1.0.0
Summary: Delayed delivery service for Patchwork - The distributed asynchronous microframework
Author: Paweł Pecio
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.11.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: patchwork-core<3,>=2.0.0
Requires-Dist: patchwork-node<2,>=1.0.0
Provides-Extra: metrics
Requires-Dist: prometheus-client>=0.20; extra == "metrics"
Provides-Extra: docs
Requires-Dist: mkdocs<2,==1.6.1; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Dynamic: license-file

# Patchwork Postponer

Delayed delivery service for Patchwork - an asynchronous distributed microframework.

Brokers like Kafka or Redis streams can't hold a message until its `not_before` time. Patchwork publishers send
such messages to a postpone queue and this service forwards them to their destination queues when they are due.
A single postponer serves all services in the system.

## Requirements

* Python 3.11+
* `patchwork-core` 2.0+, `patchwork-node` 1.0+ and a broker client package, eg. `patchwork-client-kafka` or `patchwork-client-redis`

## Installation

``pip install patchwork-postponer``

## Development

```bash
uv sync --all-extras --dev
uv run pytest tests
uv run ruff check patchwork tests
```

## Documentation

https://patchwork-framework.gitlab.io/postponer
