CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/realtime-web-patterns

WebSocket vs SSE vs polling, reconnection with backoff and jitter, heartbeats, backpressure, message ordering, connection state UI, auth on upgrade, graceful degradation

94

1.87x
Quality

98%

Does it follow best practices?

Impact

90%

1.87x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

93%

62%

Collaborative Todo List

Criteria
Without context
With context

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%

86%

50%

Live Chat for Customer Support

Criteria
Without context
With context

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%

89%

36%

Live Metrics Dashboard

Criteria
Without context
With context

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%

92%

35%

Real-time Notification Stream

Criteria
Without context
With context

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%

93%

29%

Live Order Tracking

Criteria
Without context
With context

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%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents