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
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.
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.
« On diffuse 1M événements/seconde à 12 000 clients simultanés. Latence p99 sous 15ms entre Paris et San Francisco. On a remplacé Pusher et notre stack Redis+Socket.io par un seul SDK. »
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.