同步、存在、
广播。
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
从原始同步到实时多人游戏
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.
实时生产流程检查
匿名生产流的预览。每个事件都会按通道进行重复数据删除和排序,在不到 15 毫秒的时间内分发给所有活跃订阅者。
经过验证的基准,没有营销废话
奥拉巴斯 · 苏帕巴斯 · 阿布利
常见问题
What is the difference between WebSocket, SSE, and NATS?+
Are messages guaranteed exactly-once?+
看到的ID 如果需要的话,在客户端进行重复数据删除。How do you scale beyond 1M concurrent connections?+
Can we filter Postgres CDC changes server-side?+
filter: 'tenant_id=eq.$1' 服务器端根据 WAL 进行评估,因此客户端仅收到与其相关的更改。 Postgres RLS 策略也适用于实时事件。