realtime-sync

Low-latency synchronization with WebTransport, pub/sub messaging, CRDTs, and AI stream orchestration. Covers bidirectional streaming, transactional outbox patterns, sequence tracking, and collaborative editing. Use when building real-time collaborative UIs, implementing pub/sub messaging, handling WebTransport or WebSocket connections, orchestrating live AI token streams, or resolving conflicts with CRDTs.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "realtime-sync" with this command: npx skills add oakoss/agent-skills/oakoss-agent-skills-realtime-sync

Realtime Sync

Overview

Architects high-concurrency, sub-50ms latency synchronization between distributed clients and servers. Covers WebTransport (HTTP/3) bidirectional streaming, transactional outbox patterns for database-to-sync consistency, CRDTs for collaborative editing, and AI token stream orchestration.

Core principles: the database is the source of truth (real-time channels notify, not persist), CRDTs eliminate locking for concurrent edits, and backpressure management prevents UI jitter from high-frequency streams.

When to use: Real-time collaborative UIs, pub/sub messaging, WebTransport/WebSocket connections, live AI token streams, presence tracking, conflict resolution with CRDTs, multiplayer applications.

When NOT to use: Batch processing pipelines, static content delivery, request-response APIs without real-time requirements, offline-only applications.

Quick Reference

PatternApproachKey Points
WebTransportnew WebTransport(url) + await readyHTTP/3 multiplexed; replaces WebSockets for new projects
Bidirectional streamtransport.createBidirectionalStream()Returns { readable, writable } for request-response
Unidirectional streamtransport.createUnidirectionalStream()Returns a WritableStream directly for one-way pushes
Datagramstransport.datagrams.writableUDP-like unreliable delivery for high-frequency state
Connection statstransport.getStats()Returns smoothedRtt, bytesSent, packetsLost
Transactional outboxDB write + outbox insert in one transactionCDC worker pushes to channel; prevents state drift
Sequence trackingSequence IDs on every messageRewind on reconnect to fetch missed messages
CRDT collaborationYjs (text) or Automerge (JSON state)Conflict-free concurrent editing without locks
CRDT awarenessy-protocols/awareness moduleTracks cursors, selections, and user presence
CRDT undo/redoY.UndoManager with trackedOriginsTracks only local user operations for selective undo
PresenceHeartbeat-based user trackingEpidemic broadcast for reliable zombie cleanup
AI stream batchingrequestAnimationFrame for token renderingPrevents UI jitter from high-frequency updates
Buffer-and-batchuseTransition for sync-triggered updatesDefers non-urgent re-renders during sync bursts
BackpressureBuffer size limit with forced flushPrevents memory buildup when tokens outpace rendering
WebSocket fallbackDetect WebTransport support firstEnterprise firewalls may block UDP/HTTP/3
SerializationProtocol Buffers or MessagePackAvoid JSON.stringify on 100Hz+ streams
Web Worker transportHandle WebTransport in a Web WorkerPrevents blocking the UI thread
Channel multiplexingSubscribe to multiple channels on one socketAll subscriptions share a single transport connection

Common Mistakes

MistakeCorrect Pattern
Using real-time messages as the primary source of truthState lives in the database; real-time is the notification of change
Using JSON.stringify on high-frequency streams (100Hz+)Use Protocol Buffers or MessagePack for serialization
Ignoring sequence drift when a client misses messagesImplement Sequence IDs and a rewind mechanism on the client
Implementing global locks for concurrent accessUse Optimistic UI and CRDTs for conflict-free collaboration
Sticking with WebSockets for new projects needing multiplexingUse WebTransport (HTTP/3) for bidirectional, multiplexed streams
CRDT document bloat from unbounded historyUse snapshotting (LWW) for fields that do not need history
Failing to close WebTransport streams on unmountExplicitly close streams to prevent transport crashes
Importing Awareness from yjs instead of y-protocolsUse import { Awareness } from 'y-protocols/awareness'
Using ydoc.clientID as UndoManager tracked originUse custom transaction origins passed to doc.transact()
One React re-render per AI token receivedBatch tokens with requestAnimationFrame and flush once per frame
Not handling WebTransport closed promiseMonitor transport.closed to detect unexpected disconnections

Delegation

If the local-first skill is available, delegate local-first architecture decisions, sync engine comparison, and client storage selection to it. If the electricsql skill is available, delegate ElectricSQL shape-based Postgres sync patterns to it.

  • Explore transport protocol options and latency benchmarks: Use Explore agent to compare WebTransport, SSE, and WebSocket tradeoffs
  • Implement transactional outbox pattern with CDC pipeline: Use Task agent to set up database triggers, outbox table, and background worker
  • Design real-time architecture for collaborative editing: Use Plan agent to map CRDT strategy, presence management, and conflict resolution flow
  • Build multi-stream AI orchestration component: Use Task agent to implement parallel token stream rendering with backpressure
  • Audit real-time connection lifecycle management: Use Review agent to check for stream leaks, missing cleanup, and reconnection handling

References

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

playwright

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

ui-ux-polish

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

tanstack-form

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

find-skills

No summary provided by upstream source.

Repository SourceNeeds Review