Skip to content
OpenPulseDocs

Concepts

The edge and the wire

One address for every client, one connection per browser, and what happens when the network misbehaves.

Every client connects to one address, edge.openpulse.org. DNS sends it to the nearest node we run; today that is Helsinki. You never pin a region in a browser.

One connection#

A browser opens one connection, whatever the number of rooms, tabs or components. Tabs share it, lanes multiplex on it, and it upgrades itself: WebTransport where the browser has it, WebSocket otherwise, and HTTP long-poll as the last resort. Your code does not change between them.

When the network misbehaves#

Every event has a sequence number. After a reconnect a reader asks for what came after its last one, so a laptop that slept or a phone that changed networks catches up instead of missing messages. Writes carry a producer id and count, so a post retried after a dropped reply is stored once.

If a reader falls further behind than the room keeps, it is told which sequences it missed (a gap) instead of silently skipping them. Presence and cursors are the exception: only the latest state matters, so older updates may be dropped under load.

Hosts#

HostFor
edge.openpulse.orgRealtime: streams, the socket, long-poll
api.openpulse.orgManagement: organizations, realms, keys, usage, plans
openpulse.org/authSign-in: OIDC, passkeys, tokens, device codes
openpulse.org/consoleThe Console

Live traffic goes from the client straight to the edge. Do not proxy streams through your own API; your backend only hands out tokens.