Deployment options
Kubernetes, Railway, and Render run the server and control plane as separate
services. The DigitalOcean template uses the standalone image to fit the
platform’s one-service Deploy to DO template format.
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. With worker dispatch it leaves execution to a long-lived worker. Worker is the one process that links connector drivers. A persistent worker answers the server’s connector calls: specs, config checks, discovery, and column inspection. The same image executes runs, either as a Job per run or as a long-lived process. The server and control plane coordinate through the datastore and event bus; they do not call each other directly. Both call the persistent worker for anything that needs a connector.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.workerdispatches nothing. A long-lived worker started with-executeconsumes requested runs from the event bus; every run shares that worker’s CPU and memory. Deployments without Kubernetes 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.