Deployment options
Both options run the server and control plane as separate services and use the
same runtime components. The difference is where each run executes.
Service architecture
Server serves the API and web application. It accepts connection, pipeline, and run requests and persists them through the configured datastore. Control plane manages schedules and coordinates runs. With Kubernetes dispatch it creates worker Jobs and tracks their progress. Withinproc
dispatch it executes runs inside the control-plane process.
The server and control plane coordinate through the datastore and event bus;
they do not call each other directly.
Where runs execute
The control plane’sDISPATCH_MODE determines where runs execute:
kubernetes, the default, creates one worker Job per run. Each run receives its own container and resource configuration. Workers report heartbeats, and the reaper fails runs whose heartbeats become stale.inprocexecutes runs inside the control-plane process. It requires no worker service, but every run shares the control plane’s CPU and memory. Railway deployments use this mode.
Runtime dependencies
A Filament deployment provides three runtime dependencies:- Datastore persists run state, checkpoints, connections, pipelines, and schedules. The packaged server and control-plane deployment uses PostgreSQL.
- Event bus carries run requests and progress events between runtime modules. The packaged deployment uses NATS JetStream.
- Secret provider stores or resolves connector credentials. The default provider stores encrypted secrets in the configured datastore; AWS Secrets Manager is also supported.