docker run -p 8095:8095 ghcr.io/vyuvaraj/pranor-mesh:latest
Pranor Mesh is the intelligent service mesh for the Pranor ecosystem, providing latency-aware load balancing, distributed rate limiting, live topology telemetry, and chaos fault injection — all without requiring sidecar proxies.
Latency-aware Power-of-Two-Choices (P2C): On each routing decision, sample two random backends and pick the one with lower observed latency — dramatically reduces tail latency compared to round-robin
Locality preference: Prefer backends in the same availability zone/region before spilling over to remote nodes; configurable locality weight
Health-aware routing: Unhealthy backends are automatically excluded; exponential recovery probing
Global rate limiting via Pranor Cache token buckets: Rate limit counters stored in Pranor Cache — all mesh nodes share state for true global enforcement (not per-node)
Per-service and per-route policies: Define separate rate limits per service, per endpoint pattern
Burst control: Token bucket allows short bursts above sustained rate
Real-time service topology graph: Pranor Mesh tracks all observed service-to-service call edges and pushes live updates to Pranor Console via WebSocket
Traffic flow visualization: Annotates edges with RPS, error rate, and p99 latency in real-time
Dependency discovery: Automatically discovers service dependencies without manual configuration
# Set global rate limit for a service
curl -X POST http://pranor-mesh:8095/api/v1/ratelimit/policy \
-d '{"service": "orders-api", "requests_per_second": 500, "burst": 1000}'
Pranor Mesh uses Pranor Cache token buckets — the rate limit is enforced globally across all Pranor Mesh nodes: