Sync, presence,
broadcast.
WebSocket, SSE et NATS auto-négociés. Presence, replay, ordering garanti, backpressure explicite. 1M connexions par POP, fanout sub-15ms p99.
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-négocie WebSocket → SSE → NATS selon le réseau
De la synchronisation primitive au jeu en temps réel
3 transports auto-négociés
WebSocket d'abord, puis SSE, puis NATS côté serveur. Le client choisit le meilleur selon le réseau, sans intervention.
Presence API
Qui est dans la room, état personnalisé, join/leave events. Consistent hash pour la réconciliation cross-region.
Multiplex N canaux
Ouvrez 1 000 canaux sur une seule connexion. Abonnement/désabonnement atomique, zéro coût réseau additionnel.
Backpressure & ordering
Ordering garanti par canal, buffer côté client configurable, drop policy explicite. Pas de duplications silencieuses.
Event replay
Rejoue les N derniers événements à la reconnection. Configuré par canal, rétention par défaut 100 messages ou 60 secondes.
Cursors collab
Primitive cursor native pour apps collaboratives. Throttle adaptatif côté serveur, interpolation côté client.
Ce que votre cluster reçoit, en vrai
Aperçu d'un flux de production anonymisé. Chaque ligne est un événement dédupliqué et ordonné par canal, fanout sub-15ms vers tous les abonnés.
Chiffres publiés, pas marketing
Aurabase · Supabase · Ably
Questions fréquentes
Quelle est la différence entre WebSocket, SSE et NATS ?+
Les messages sont-ils garantis exactly-once ?+
seen_ids pour dédupliquer côté client si vous en avez besoin.Comment scale-t-on au-delà de 1M connexions ?+
Peut-on filtrer les CDC Postgres côté serveur ?+
filter: 'tenant_id=eq.$1' est évalué côté serveur via le WAL, et les clients n'ont accès qu'aux changes qui les concernent. Les policies RLS s'appliquent aussi aux événements realtime.Et le mode hors ligne ?+
Quel est le coût réel ?+
Ouvrez un canal, écoutez la production.
Aucune configuration. Un canal, trois lignes, un dashboard qui respire.