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

# Architecture

> The server, control plane, and worker, over a data store and an event bus.

Filament is three components over a data store and an event bus.

| Component       | Responsibility                                                           |
| --------------- | ------------------------------------------------------------------------ |
| `server`        | Serves the API and web UI; owns connections, pipelines, and run requests |
| `control-plane` | Dispatches requested runs and tracks run state                           |
| `worker`        | Executes a single run, from extraction to verified write                 |

## Data store

Holds durable state: connections, pipelines, runs, and checkpoints. This is
an interface with swappable implementations, not a hardcoded dependency.

## Event bus

Carries the events the components communicate through, rather than the
components calling each other directly. Workers emit events as a run
progresses, and the control plane folds them into run state.

## Inside a run

Within a run, the pipeline handles batching, writing, integrity
verification, and checkpoint advancement — so an interrupted run resumes
where it left off rather than starting over. See [Integrity &
checkpoints](/pages/guides/concepts/integrity-and-checkpoints) for how that works, and
[Replication modes](/pages/guides/concepts/replication-modes) for the read strategies a
source can use.

## Pluggability

Connectors, the data store, and the event bus are all interfaces with
swappable implementations. A connector self-registers via a blank import —
see [Building a connector](/pages/connectors/building-a-connector/writing-a-source)
to add one.
