WebSocket vs SSE vs polling, reconnection with backoff and jitter, heartbeats, backpressure, message ordering, connection state UI, auth on upgrade, graceful degradation
94
98%
Does it follow best practices?
Impact
90%
1.87xAverage score across 5 eval scenarios
Passed
No known issues
websocket-chosen-for-bidirectional
100%
100%
room-scoped-per-list
100%
100%
reconnection-with-backoff
0%
100%
state-recovery-on-reconnect
0%
100%
connection-state-ui
0%
100%
message-ordering-or-conflict-handling
0%
100%
auth-during-handshake
0%
100%
heartbeat-configured
0%
100%
optimistic-updates
0%
0%
deduplication
0%
100%
client-cleanup-on-disconnect
100%
100%
typescript-types-defined
100%
100%
reconnection-with-backoff
16%
100%
state-recovery-on-reconnect
30%
100%
connection-state-ui
0%
100%
heartbeat-or-ping-configured
0%
100%
auth-during-handshake
0%
100%
room-based-messaging
100%
100%
message-ordering
50%
100%
message-deduplication
100%
100%
client-cleanup-on-disconnect
16%
66%
authorization-on-room-join
0%
0%
dispose-cleanup
100%
100%
websocket-chosen-over-sse
100%
100%
typescript-types-defined
100%
100%
backpressure-awareness
0%
0%
sse-chosen-over-websocket
100%
100%
heartbeat-configured
0%
100%
event-ids-for-resumable-stream
0%
100%
connection-state-ui
60%
100%
state-recovery-on-reconnect
75%
100%
backpressure-handling
0%
50%
client-cleanup-on-disconnect
100%
100%
graceful-degradation-to-polling
0%
0%
sse-headers-correct
100%
100%
proper-cleanup-on-unmount
100%
100%
dead-client-detection
50%
100%
typescript-types-defined
100%
100%
sse-or-targeted-websocket
100%
100%
user-scoped-delivery
100%
100%
reconnection-handled
60%
100%
missed-notifications-recovery
20%
100%
connection-state-awareness
12%
100%
heartbeat-configured
100%
100%
auth-on-connection
12%
12%
event-ids-included
0%
100%
deduplication
0%
100%
client-cleanup
100%
100%
unread-count-computed-not-state
100%
100%
typescript-types-defined
100%
100%
dead-client-detection
50%
100%
appropriate-transport-choice
100%
100%
scoped-to-specific-order
100%
100%
reconnection-handled
83%
100%
state-recovery-on-reconnect
80%
100%
connection-state-ui
40%
100%
heartbeat-configured
0%
100%
event-ids-or-sequence-numbers
0%
100%
client-cleanup-on-disconnect
100%
100%
proper-sse-or-ws-headers
100%
100%
typescript-types-defined
100%
100%
graceful-degradation
0%
0%
dead-client-detection
75%
100%