Observed since 20 Oct, 21:05 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Intelligent task routing with data locality for distributed systems
Intelligent task routing with data locality for distributed systems.
AffinityRouter is a Python library for smart task routing in distributed systems. Instead of distributing work agnostically (e.g., Round-Robin), it prioritizes Data Locality using consistent hashing, ensuring tasks for the same resource always reach the same worker — maximizing in-memory cache hits and minimizing database pressure.
asyncio with automatic sync function wrappingpip install --pre affinity-router
Note: The
--preflag is required to install this alpha pre-release.
from affinity_router import Router, Worker
# --- Router side ---
router = Router.from_redis(redis_url="redis://localhost:6379")
await router.submit(
routing_key="ticket:12345",
task_name="process_payment",
payload={"amount": 100, "currency": "EUR"},
)
# --- Worker side ---
worker = Worker.from_redis(redis_url="redis://localhost:6379", worker_id="worker-1")
@worker.task("process_payment")
async def process_payment(task):
return {"status": "paid"}
await worker.start()
AffinityRouter supports multiple transport backends:
Best for production deployments with resilience requirements.
from affinity_router import Router, Worker
from affinity_router.transport import RedisStreamTransport
router = Router.from_redis(redis_url="redis://localhost:6379")
Best for maximum throughput in controlled environments where workers have direct network access.
from affinity_router.transport import DirectTcpTransport
transport = DirectTcpTransport(registry=registry, host="0.0.0.0", port=8000)
Best for high-throughput scenarios with batching to reduce syscall overhead.
from affinity_router.transport import BatchedTcpTransport
transport = BatchedTcpTransport(
registry=registry,
batch_size=100,
flush_interval_ms=10
)
| Transport | Throughput | Latency | Resilience | Use Case |
|---|---|---|---|---|
| Redis Streams | Medium | Medium | High | Production, distributed |
| Direct TCP | High | Low | Low | Controlled networks |
| Batched TCP | Highest | Medium | Low | High-throughput batch jobs |
This software is provided "AS IS", without warranty of any kind, express or implied. The authors and contributors shall not be held liable for any damages, data loss, service disruptions, or any other issues arising from the use of this software. Users are solely responsible for evaluating the suitability of this software for their intended use case.
By using this software, you acknowledge that you have read and understood the MIT License under which it is distributed.
This is an alpha release (
0.1.0a1).This version may contain incomplete implementations and undocumented critical bugs. The API surface is subject to breaking changes without prior notice.
It is strongly recommended to avoid using this package in real development or production environments.
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0a1 | 9 Mar 2026 | 1 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:05 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:139fce72f9a2fce3461aafdefc22b1ecd6f7df8aaaf3dd96ebb7cfb480b8eeb9