Skip to main content
Every change in a workspace is written to an ordered log that can be followed. The studio uses it to stay up to date without refreshing, and another system can use it to stay in step.

How the stream works

A client opens a long-lived connection to the workspace’s events route. It is a standard server-sent events stream.
  1. The server first sends a ready event with the current sequence.
  2. It then sends events as they happen. Each has an id, which is its sequence number, and an event name, which is its type.
  3. If the connection drops, the client reconnects and sends the last id it saw, in the Last-Event-ID header or as ?after=. It receives only what it missed.
Sequence numbers only increase, per workspace. That makes resuming exact: with the last handled sequence kept, no event is missed and none is handled twice.

Event types

Every event carries its sequence, its type, the workspaceId, who did it (actor) and when (occurredAt), plus the ids that say what it is about, such as the recordId or the taskId. A caller receives only the events it may see. A notification event goes to its recipient alone.