Sync, presence,
broadcast.
Auto-negotiated WebSocket, SSE, and NATS. Presence, replay, guaranteed ordering, explicit backpressure. 1M connections per POP, sub-15ms p99 fanout.
const channel = aura.channel('sensors:live')channel.on('postgres_changes', {event: 'INSERT',schema: 'public',table: 'sensors',filter: 'tenant_id=eq.${tid}',}, ({ new: row }) => render(row)).subscribe()// Auto-negotiates WebSocket → SSE → NATS based on network
From primitive synchronization to real-time multiplayer
3 auto-negotiated transports
WebSocket first, then SSE, then server-side NATS. The client selects the optimal protocol based on network conditions.
Presence API
Who is currently in the room, custom state, join/leave events. Consistent hashing for cross-region state reconciliation.
Multiplex N channels
Open 1,000 channels over a single TCP connection. Atomic subscribe/unsubscribe with zero extra connection overhead.
Backpressure & ordering
Guaranteed ordering per channel, configurable client buffer, explicit drop policy. No silent duplications.
Event replay
Replays the last N events upon reconnection. Configured per channel, default retention of 100 messages or 60 seconds.
Collab cursors
Native collaborative cursor primitives for multi-user apps. Server-side adaptive throttling, client-side interpolation.
Real-time production stream inspect
Preview of an anonymized production stream. Every event is deduplicated and ordered per channel, fanning out in sub-15ms to all active subscribers.
Verified benchmarks, no marketing fluff
Aurabase · Supabase · Ably
Frequently asked questions
What is the difference between WebSocket, SSE, and NATS?+
Are messages guaranteed exactly-once?+
seen_ids to deduplicate on the client side if needed.How do you scale beyond 1M concurrent connections?+
Can we filter Postgres CDC changes server-side?+
filter: 'tenant_id=eq.$1' is evaluated server-side against the WAL, so clients only receive changes that concern them. Postgres RLS policies apply to realtime events as well.What about offline mode?+
What is the real pricing model?+
Open a channel and listen to production live.
Zero configuration required. One channel, three lines of code, a living dashboard.