Real-time is the core of TASKTOGO. Here is how we keep it fast.
Socket.IO rooms
Each group gets its own Socket.IO room. When a member makes a change, the server emits an event to the room — not a broadcast to all connections. This keeps the fan-out manageable.
Presence reconciliation
Online/offline status uses a heartbeat-based presence model. Each client pings the server every 30 seconds. If no ping is received within 60 seconds, the user is marked offline. This avoids the complexity of distributed presence state while staying accurate enough for operational use.
Reconnect storms
When a server restarts, all clients reconnect at once. We throttle reconnect attempts with exponential back-off and jitter on the client side to avoid overwhelming the backend.