skills/realtime/SKILL.md
Real-time communication -- WebSocket, SSE, pub/sub, collaboration, presence systems.
npx skillsauth add arbazkhan971/godmode realtimeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/godmode:realtime, "add websockets", "real-time"grep -r "socket.io\|ws\|websocket\|sse\|EventSource" \
--include="*.ts" --include="*.js" -l 2>/dev/null
grep -r "redis.*pub\|redis.*sub\|createAdapter" \
--include="*.ts" --include="*.js" -l 2>/dev/null
Direction: server->client | bidirectional | both
Latency: <100ms | <1s | <30s
Concurrency: <1K | 1K-10K | 10K-100K | >100K
Persistence: ephemeral | replay needed
IF only server->client push: use SSE (simpler). IF bidirectional needed: use WebSocket/Socket.io.
Authenticate during handshake (not after). Reject unauthenticated connections immediately. Heartbeat: client+server exchange every 30s. Dead connection detection within 60s.
Channel patterns: room:{id}, user:{id},
team:{id}, presence:{room}, typing:{room}.
Use Redis pub/sub for multi-server fan-out.
Track online/offline per user+room in Redis sorted set. Score = last-seen timestamp. Expire after 60s. Debounce "user left" by 3-5s (prevents flicker on network blips).
Ephemeral state. Never persist. Broadcast at most
once per 2s. Auto-expire after 5s. Send stop_typing
on blur or submit.
IF multiple users edit same document: use CRDT (Yjs). IF simple form fields: last-write-wins sufficient.
Redis pub/sub adapter for Socket.io multi-instance. Sticky sessions (IP hash) for WebSocket at LB. Per-instance: ~10K connections. Cluster: scale horizontally with Redis adapter.
upstream websocket_backend {
ip_hash;
server ws1:3000;
server ws2:3000;
}
Exponential backoff: base=1s, max=30s, max attempts=10. On reconnect: re-authenticate, rejoin rooms, fetch missed messages by last-received ID. Queue messages during disconnection.
[ ] Auth on handshake
[ ] Heartbeat configured (30s interval)
[ ] Reconnection with state recovery
[ ] Redis pub/sub for multi-instance
[ ] Presence with debounce (3-5s)
[ ] Rate limiting on incoming messages
[ ] Server-side message validation
Append .godmode/realtime-results.tsv:
timestamp transport event_types rooms presence scaling reconnection status
KEEP if: reconnection recovers state AND latency
< 100ms p95 AND ordering preserved.
DISCARD if: messages lost on reconnect
OR cross-instance delivery fails.
STOP when FIRST of:
- All features work (chat, presence, typing)
- Reconnection with state recovery verified
- Cross-instance delivery confirmed
On failure: git reset --hard HEAD~1. Never pause.
<!-- tier-3 -->| Failure | Action | |--|--| | Connections drop often | Heartbeat + backoff reconnect | | Out-of-order messages | Add sequence numbers, reorder | | Memory grows per client | Check listener leaks, limit buffers | | Updates not reaching all | Verify Redis pub/sub fan-out |
development
Web performance optimization. Lighthouse, bundle analysis, code splitting, image optimization, critical CSS, fonts, service workers, CDN.
development
Webhook design, delivery, retry, HMAC verification, event subscriptions, dead letter queues.
development
Vue.js mastery. Composition API, Pinia, Vue Router, Nuxt SSR/SSG, Vite optimization, testing.
development
Evidence gate. Run command, read full output, confirm or deny claim. No trust, only proof.