> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devias.io/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The docs are served at https://docs.devias.io. Every path in these docs is relative to that root: /llms.txt is https://docs.devias.io/llms.txt.
> Devias is an open-source platform that works as an operating system for a business: a core (records, views, workflows, agents, permissions) with installable modules.
> Pages are typed by folder. concepts/ explains what things are, guides/ gives procedures, reference/ is exhaustive (SDK, CLI, HTTP API), operate/ covers hosting. Use /start/glossary for exact terms.
> Every id in a module (module, object, field, view, action, workflow, step, connection, variable, event, policy) is a uuid. Generate them with `devias id <count>`. Never invent dotted or readable ids.
> Run `devias plan` and read its output before `devias apply`. Apply only what the plan says.
> The OpenAPI document, including the routes of the modules in the reference setup, is at /reference/api/openapi.json.
> Devias is young and changes quickly. If a page and the source repository (github.com/devias-io/devias) disagree, the repository is right.

# Change feed

> How to follow every change in a Devias workspace as a server-sent events stream. Covers the ready event, ids that are per-workspace increasing sequence numbers, resuming with Last-Event-ID or ?after=, every event type, the common event fields, and which events a person may see.

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

| Type | When |
| - | - |
| `record.created`, `record.updated`, `record.deleted` | A record changed. |
| `comment.created`, `comment.updated`, `comment.deleted` | A comment on a record changed. |
| `metadata.changed` | The data model changed. |
| `module.applied` | A module was installed or updated. |
| `module.connected`, `module.disconnected`, `module.connection.failed` | A module's connection was made, removed, or refused by the service. |
| `module.event` | A module received an event from an outside service. |
| `workflow.changed`, `workflow.run` | A workflow was created, changed or removed, or one of its runs was queued or finished. |
| `task.changed`, `document.changed` | A task or a document changed. |
| `notification.changed` | A notification was created, read or removed. |

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.

## Related

* [SDK events and notifications](https://docs.devias.io/reference/sdk/events-and-notifications.md): subscribe in one line.
* [Workflows and tasks](https://docs.devias.io/concepts/automation.md): act on changes without code.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.