Everything RevenProx does
RevenProx delivers Server-Sent Events to 10M+ concurrent clients across a brokerless NNG mesh — with UUID topic routing for targeted delivery, cached webhook JWT authentication with a circuit breaker, gossip-based state sync (bloom filters, merkle trees, vector clocks), and a low-memory Zig runtime that ships as a single static binary. MIT-licensed and self-hostable.
Built for 10M+ connections
Architected to hold 10M+ concurrent SSE streams across 100+ instances. Capacity is a function of how many nodes you run, so you scale out by adding instances to the mesh rather than pushing one node to its limit.
Brokerless NNG mesh
Instances peer directly over NNG (nanomsg-next-gen) — there is no central message broker. Any instance can accept a publish and route it to subscribers anywhere, removing the classic pub/sub scaling ceiling.
Horizontal by construction
Adding throughput means adding nodes. There is no shared coordinator to over-provision, and no single point that must grow to match your busiest topic.
UUID topic routing
Every stream is a UUID topic. Clients subscribe by topic, publishers publish by topic, and the mesh delivers each event only to the instances holding matching subscribers — targeted fan-out over an effectively unlimited namespace.
Gossip state sync
Bloom filters summarize which topics an instance serves, merkle trees reconcile only the parts of state that differ, and vector clocks order updates without a global clock — so instances mostly confirm they already agree.
No wasted fan-out
Bloom-filter summaries let instances skip forwarding events that would land nowhere, keeping mesh traffic proportional to real subscriptions instead of flooding every node.
Webhook JWT verification
Clients present a JWT that RevenProx validates via a webhook to your own auth service — your identity logic stays yours, and the proxy simply enforces it on connect.
Verification caching
Results are cached so a burst of reconnects for an already-seen token does not translate into a burst of calls to your auth service.
Circuit breaker
If the auth upstream degrades, the breaker trips and stops hammering it — protecting a struggling dependency from a thundering herd instead of amplifying the outage.
Low, predictable memory
Written in Zig with no garbage collector and manual memory layout, per-connection overhead is small and predictable — the property that actually governs cost when connections are mostly idle.
Single static binary
Builds to one static binary with Zig (for example, zig build -Doptimize=ReleaseSafe). No runtime to install, no interpreter to ship — just the binary and a config file.
Self-hosted & MIT
Runs entirely on your own infrastructure with no vendor control plane. Docker and Kubernetes deployment guides are provided, and the whole thing is open source under the MIT license.
How the pieces connect
A peer-to-peer mesh with no coordinator, kept consistent by gossip.
Every instance peers directly. State stays consistent with bloom filters, merkle trees, and vector clocks.