Realtime
Browse the documentation in this section.
Getting started
Add live data and presence to your app in five minutes - install RealtimePlugin, wire identity, drop in one script tag, and push your first event.
Gating access
Decide who can join a room. The two gates (identity + GroupPolicy), the public-only default, and worked examples for private, membership, tenant, and role-based rooms.
Model subscriptions
Subscribe to a model's live create / update / delete - Supabase-style, but safe by construction. Opt-in per model, field-whitelisted, id-only by default.
Presence
Who's online in a group - opt-in per group, identity projected to id-only by default, deduped by user, and governed by the same GroupPolicy that gates the room.
Transports
SSE vs WebSocket, the one-connection-per-browser SharedWorker model, reconnect and replay (Last-Event-ID), connection limits, and WS inbound messages.
Scaling across instances
Run umbral-realtime behind a load balancer with a Redis pub/sub backplane so targeted sends reach sockets on any instance - and the proven single-instance numbers.