Overview
socket-serve uses Redis for distributed state management across serverless instances.State Components
Session State
Each client connection maintains session data:session:{sessionId}- Session metadatasession:{sessionId}:rooms- Set of room memberships
Message Queue
Messages awaiting delivery are queued in Redis:messages:{sessionId}- List of pending messagesack:{messageId}- Acknowledgment tracking
Room Membership
Room-to-session mappings for broadcasting: Redis Keys:room:{roomName}- Set of session IDs in roomsession:{sessionId}:rooms- Reverse mapping
Pub/Sub
Redis pub/sub enables message broadcasting across serverless instances:State Lifecycle
Connection
- Generate session ID
- Create session in Redis
- Initialize message queue
- Subscribe to session channel
Message Handling
- Queue message in Redis
- Publish to session channel
- Deliver via active transport
- Remove from queue on delivery
Disconnection
- Unsubscribe from channels
- Leave all rooms
- Clean up session data
- Remove message queue
Configuration
Next Steps
- Architecture - System design
- Redis Setup - Configuration guide
- Rooms - Room broadcasting