RFC 6455 — The WebSocket Protocol. Read §1.3 (handshake), §5
(framing + masking), §5.5 (control frames: close/ping/pong).
RFC 8441 — Bootstrapping WebSockets with HTTP/2 (CONNECT +
:protocol). The h2 path for WebSockets.
WebTransport (over HTTP/3) — the QUIC-based future (gw-02):
survives network changes via connection migration.
https://www.w3.org/TR/webtransport/
Server-Sent Events (WHATWG HTML EventSource) — the simpler
server→client-only alternative.
nhooyr.io/websocket and github.com/gorilla/websocket (Go) — the
two common Go WebSocket libraries used in the steps.
Netty WebSocketServerProtocolHandler — the Java/Netty path (the
Pushy lineage).
k6 (with the websockets module) or Gatling — load generators that
can open many concurrent WebSocket connections.
The C10M problem / "millions of connections per box" writeups
(WhatsApp's 2M-connections-per-server post is the classic).
Linux tuning for many connections: fs.file-max, ulimit -n,
net.ipv4.ip_local_port_range, net.core.somaxconn, ephemeral-port
and conntrack budgets (gw-01).
Marc Brooker — Exponential Backoff And Jitter (the reconnect-storm
fix). https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/
Upstream: gw-01 (drain/keepalive), gw-02 (upgrade path), gw-03
(event-loop discipline), db-20 (the registry is a distributed KV).
Downstream: gw-06 (reconnect backoff/jitter, load shed), gw-09
(readiness + termination grace for drain), gw-11 (delivery-reliability
SLOs).