Patchwork Node
Worker node for Patchwork - an asynchronous, event-driven microframework for distributed services.
The node fetches messages from a message broker, routes them to async handlers, runs handlers on processing units and settles messages: commits, retries, reroutes or backoffs them.
Requirements
- Python 3.11+
patchwork-core2.0+ and a broker client package, eg.patchwork-client-kafkaorpatchwork-client-redis
Installation
pip install patchwork-node
Optional extras: patchwork-node[metrics] for Prometheus metrics.
Example
from patchwork.core import Message
from patchwork.core.client.local import LocalBroker, LocalPublisher, LocalSubscriber
from patchwork.node import Worker
from patchwork.node.core import TaskRouter
from patchwork.node.node import run
from patchwork.node.processor import InlineUnit
router = TaskRouter(processor=InlineUnit(concurrency=10))
@router.on("user.created")
async def user_created(message: Message):
print(message.get_payload())
broker = LocalBroker()
worker = Worker(
subscriber=LocalSubscriber(broker=broker, queues=["users"]),
publisher=LocalPublisher(broker=broker),
)
worker.add_router(router)
run(worker)
Documentation
Metadata
Release files for patchwork-node 1.0.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 | |
|---|---|---|---|
| patchwork_node-1.0.0.tar.gz | 174.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| patchwork_node-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 207.0 kB
Release files / patchwork_node-1.0.0.tar.gz
| Download URL | patchwork_node-1.0.0.tar.gz |
|---|---|
| Size | 174.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8068c69afba3f3ada37175b22dc2e3dbd0416a26a3ac31a3da3f033a9218bcea
|
|
BLAKE2b-256 checksum How to use checksums |
84b94e1b9697641187d9a558beb07bbb8bcaf8b599bc3426b40d7eda541de319
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / patchwork_node-1.0.0-py3-none-any.whl
| Download URL | patchwork_node-1.0.0-py3-none-any.whl |
|---|---|
| Size | 32.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b423db0a225f451a77531d3a54e43eac34fc34a52eaa828cad40289b71f7b677
|
|
BLAKE2b-256 checksum How to use checksums |
c92b6df860fb520eb9ec21d4f2c2414a678d83043b42c0e7721321d80ec8cc19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|