Skip to main content
Filament is an open-source data movement engine built by Galaxy. It replicates and ingests data from databases, HTTP APIs, event streams, and object storage into warehouses, lakes, and databases. It supports full loads, incremental replication, and change data capture (CDC). Filament is written in Go and licensed under Apache 2.0, and the full engine is developed in the open on GitHub. As data moves through the engine, Filament verifies Arrow batches at the sink handoff and, where the sink supports it, checks the exact serialized payload. You can run Filament as a standalone binary, deploy it on Kubernetes, or embed it in a Go application. For published throughput, wall time, and memory results against other replication tools, see Benchmarking. Connectors, the data store, and the event bus are interfaces with swappable implementations. Runs that carry resumable progress (incremental and checkpointed full reads) pick up from their last durable checkpoint instead of starting over. The requirements and recovery behavior are covered in Runs and recovery.

Welcome to Filament

How it’s put together

The runner executes each data movement from extraction through the final sink write. The API server and control plane decide when and where that runner starts. On Kubernetes, that work is split across three processes:
  • The server owns connections, pipelines, and run requests
  • The control plane schedules and dispatches
  • Each run executes as its own worker Job
For smaller deployments, runs can execute in the control plane, the standalone binary, or a Go process that embeds Filament. Postgres stores run state and NATS JetStream carries progress events when the components run separately. Read Architecture to follow a batch through those components.

Where to go next

Your first pipeline

Install the CLI and run a pipeline end to end in five minutes. No database needed.

PostgreSQL to Snowflake

Replicate inserts, updates, and deletes with change data capture.

PostgreSQL to ClickHouse

Snapshot 1.1M rows in seconds, then keep them fresh incrementally.

Quickstart

Get infra, the control plane, API server, and UI running locally.

Architecture

Follow a batch through the runner and see how run progress is stored.

Connectors

See what Filament can read from and write to today.

Installation

Standalone binary, Go library, or Kubernetes via Helm.

Join the Slack community

Ask questions, report what breaks, and hear about releases before they land.
Filament is pre-1.0. APIs, including the interfaces documented here, may still change.