feat(iios): socket.io Redis adapter for cross-replica realtime (P9 scaling)
Adds an opt-in RedisIoAdapter (wired in main.ts when REDIS_URL is set) so socket.io room emits fan out across instances via Redis pub/sub — a client on replica B now receives messages emitted by replica A. Without REDIS_URL the in-memory adapter is kept (single-instance dev unchanged). Adds redis to docker-compose, REDIS_URL to the env contract, and smoke-realtime-cluster.mjs which proves cross-instance delivery fails without Redis and passes with it. Delivery is at-least-once at N>1; clients dedupe by message id (documented). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,9 @@
|
||||
DATABASE_URL=postgresql://iios:iios@localhost:5434/iios?schema=public # 🔒 Postgres connection
|
||||
PORT=3200
|
||||
# NODE_ENV=production # set by the Docker image
|
||||
# Realtime fan-out across replicas (socket.io Redis adapter). REQUIRED when running
|
||||
# more than one instance with live chat; omit for a single instance (in-memory adapter).
|
||||
# REDIS_URL=redis://localhost:6379 # 🔒
|
||||
|
||||
# ── Secrets ──────────────────────────────────────────────────────────────────
|
||||
# JSON map of appId → HS256 signing secret used to verify session JWTs (SessionVerifier).
|
||||
|
||||
Reference in New Issue
Block a user