Issue: Scalare Realtime con Redis Adapter e sticky sessions
Summary
Rendere Redis obbligatorio per il realtime-service e attivare l’adapter socket.io-redis per supportare più istanze dietro LB.
Motivation / Risk
- Senza adapter, i messaggi restano confinati all’istanza locale → chat/presence inconsistenti.
- Futuri picchi di connessioni causerebbero “user A non vede user B”.
Plan
- Configurare Redis connection nel realtime-service come mandatory in prod (env check).
- Abilitare
@socket.io/redis-adaptercon namespace per chat/presence. - Configurare sticky sessions / session affinity sul LB (o cookie).
- Aggiungere rate limiting WS per singolo socket.
- Load test fan-out con k6/Artillery per 3+ istanze.
Acceptance Criteria
- Due istanze realtime dietro LB condividono eventi chat/presence.
- Test di fan-out con 500 connessioni simultanee passa senza messaggi persi.
- Flag di configurazione chiaramente documentato (prod obbligatorio, dev opzionale).
Notes / Dependencies
- Redis già usato altrove: valutare db dedicato per WS per separare chiavi e metriche.
- Richiede modifica compose/k8s per sticky sessions.