Skip to main content
Filament moves data from a source to a sink. Most of the product can be understood through five objects:
  • A connection says how to reach a source or sink. Credentials and connector settings live here so they can be reused.
  • A pipeline connects sources to sinks. Each edge is a route with its own replication choices. Saving an edit creates a new immutable version.
  • A resource is one table, stream, or API collection selected from a source.
  • A run is one execution of one route.
  • A checkpoint records durable progress for a resource that can resume.
Imagine a users table moving from PostgreSQL to a warehouse. The connection answers “which PostgreSQL?” and “which warehouse?” The route answers “copy all users or only changes?” A run is the attempt that performs that work. If the chosen mode supports checkpoints, a retry can continue from confirmed progress.

The data journey

During a run, Filament:
  1. Resolves the two connectors and the selected resources;
  2. Checks that the requested read and write behavior is supported;
  3. Asks the source to write typed rows into Arrow builders;
  4. Sends bounded Arrow batches to the sink;
  5. Commits or aborts according to the sink contract; and
  6. Records facts, totals, integrity evidence, and durable checkpoints.
The queue between source and sink has a fixed size. If the sink slows down, the source waits instead of allowing queued data to consume unbounded memory. Incremental and CDC routes write in order through a single writer.

Choose what to learn next