FSS WAMP Router
A from-scratch WAMP protocol router in Java — a WebSocket pub/sub broker and RPC dealer we designed, built, and run ourselves.
A from-scratch WAMP protocol router in Java — a WebSocket pub/sub broker and RPC dealer we designed, built, and run ourselves.
The FSS WAMP Router is a real-time messaging server we designed and built from scratch in Java. It speaks WAMP — the Web Application Messaging Protocol — acting as both a publish/subscribe broker and a routed-RPC dealer over WebSocket, so browsers, services and devices can call each other's procedures and stream events through a single connection. Rather than depend on a third-party broker, we implemented the protocol ourselves directly on Netty's asynchronous core — giving us a lean, fully-owned router we can shape to exactly what a deployment needs.
Its authentication and authorization were built for production. The router supports a standards-aligned ticket handshake (HELLO, CHALLENGE, AUTHENTICATE, WELCOME) and a pluggable stack that cleanly separates credential validation, identity resolution and role resolution — so a deployment can validate against static credentials or delegate to an external HTTPS service, fail-closed, with no secrets stored on the box. Authorization is deny-by-default and role-based, with every grant scoped to an explicit URI prefix rather than a blanket wildcard, and credential checks run off the I/O event loop so they never stall message throughput.
It is engineered to run unattended: a health endpoint and Prometheus metrics, structured JSON logging, bounded flow-control with backpressure, sensible limits and timeouts, and a hardened, sandboxed service. It is interoperability-tested against standard AutobahnJS clients and ships with a full set of developer, operator, configuration and deployment documentation. In production it runs in a tiny memory footprint and stays up for months at a stretch — the proof that, when a real-time backbone matters, we can build and operate the whole thing ourselves.