Filament vs. Sling

Side-by-side capabilities and benchmarks.

Introduction

Sling is a single-binary CLI for moving data between databases, files, and APIs. It is quick to install and easy to script. The core is free, and parallelism, API sources, and change data capture are sold as paid tiers. Filament is an open-source replication engine with none of that gated. Parallel reads, checkpoints, change data capture, and verified writes ship in the free binary.

HIGHLIGHTS

9.2× faster

WALL TIME

Filament

114.8 SEC

Sling

1,053.3 SEC

NYC Taxi, Postgres → Postgres

9.2× faster

WALL TIME

Filament

114.8 SEC

Sling

1,053.3 SEC

NYC Taxi, Postgres → Postgres

11.3× faster

ROWS PER SECOND

Filament

2,288,144 rows

Sling

202,645 rows

TPC-H, Postgres → Postgres

11.3× faster

ROWS PER SECOND

Filament

2,288,144 rows

Sling

202,645 rows

TPC-H, Postgres → Postgres

5.9× less

CPU SECONDS

Filament

377.4 SEC

Sling

2,211.4 SEC

NYC Taxi, Postgres → Postgres

5.9× less

CPU SECONDS

Filament

377.4 SEC

Sling

2,211.4 SEC

NYC Taxi, Postgres → Postgres

29.5× less

PEAK MEMORY

Filament

2.97 GiB

Sling

0.10 GiB

NYC Taxi, Postgres → Postgres

29.5× less

PEAK MEMORY

Filament

2.97 GiB

Sling

0.10 GiB

NYC Taxi, Postgres → Postgres

Galaxy product illustration

License and control

License

Apache 2.0, open source.

GPL 3.0 for the CLI. Pro features unlock with a token validated at process start. The Platform is proprietary.

License

Apache 2.0, open source.

GPL 3.0 for the CLI. Pro features unlock with a token validated at process start. The Platform is proprietary.

Self-hosted in full

Yes. One repository, no paid tier, nothing gated.

The free CLI is self-hosted. Parallel streams, chunking, API sources, hooks, OpenTelemetry, and CDC need a paid token.

Self-hosted in full

Yes. One repository, no paid tier, nothing gated.

The free CLI is self-hosted. Parallel streams, chunking, API sources, hooks, OpenTelemetry, and CDC need a paid token.

Adding a new source

A YAML manifest for REST APIs, loaded at runtime with no rebuild. A Go driver for databases and other driver-based sources.

YAML API spec, but only with CLI Pro. Go contribution to the repository otherwise.

Adding a new source

A YAML manifest for REST APIs, loaded at runtime with no rebuild. A Go driver for databases and other driver-based sources.

YAML API spec, but only with CLI Pro. Go contribution to the repository otherwise.

Connector maintenance

Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).

All maintained by Sling Data. 28 databases, 12 storage systems, a few datalake formats, and roughly 80 to 100 API specs depending on the index.

Connector maintenance

Every connector lives in the engine repository with a published maturity level (alpha, beta, stable).

All maintained by Sling Data. 28 databases, 12 storage systems, a few datalake formats, and roughly 80 to 100 API specs depending on the index.

Services to operate

Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.

None for the CLI. The Platform is a hosted control plane, self-hostable on the Advanced plan, plus self-hosted agents.

Services to operate

Server and control plane, with Postgres and NATS. Each run is its own Kubernetes Job. One binary for evaluation.

None for the CLI. The Platform is a hosted control plane, self-hostable on the Advanced plan, plus self-hosted agents.

Runtime

Static Go binaries on distroless images. One runner code path wherever a run executes.

Go single binary. Streaming design that holds minimal data in memory.

Runtime

Static Go binaries on distroless images. One runner code path wherever a run executes.

Go single binary. Streaming design that holds minimal data in memory.

Scheduling

Built-in cron per pipeline. Safe to run multiple control planes.

None in the CLI. Cron or the paid Platform.

Scheduling

Built-in cron per pipeline. Safe to run multiple control planes.

None in the CLI. Cron or the paid Platform.

SaaS source execution

Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.

YAML specs interpreted by the CLI. CLI Pro required.

SaaS source execution

Manifests interpreted inside the engine, in the same process as the run. No per-connector containers.

YAML specs interpreted by the CLI. CLI Pro required.

Embeddable

Yes. Go library (app.Run) with swappable event bus, state store, and secrets.

Python wrapper that shells out to the binary.

Embeddable

Yes. Go library (app.Run) with swappable event bus, state store, and secrets.

Python wrapper that shells out to the binary.

Interfaces

Web UI, ConnectRPC API, CLI.

CLI and YAML. Web UI and REST API are the Platform.

Interfaces

Web UI, ConnectRPC API, CLI.

CLI and YAML. Web UI and REST API are the Platform.

Correctness

Resume after failure

Mid-table, from per-shard checkpoints, for upsert, incremental, and CDC runs. A failed run lands in a partial state and continues on re-request.

No mid-table checkpoint outside CDC. Every mode loads through a temp table and a failed stream reruns from the start. Retries are Pro.

Resume after failure

Mid-table, from per-shard checkpoints, for upsert, incremental, and CDC runs. A failed run lands in a partial state and continues on re-request.

No mid-table checkpoint outside CDC. Every mode loads through a temp table and a failed stream reruns from the start. Retries are Pro.

Per-batch integrity check

CRC32-C computed independently on the read side and the write side of every batch. A mismatch fails the run.

None. Row counts reported. Check hooks you write yourself are Pro.

Per-batch integrity check

CRC32-C computed independently on the read side and the write side of every batch. A mismatch fails the run.

None. Row counts reported. Check hooks you write yourself are Pro.

Change data capture

Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.

Log-based CDC for Postgres, MySQL, SQL Server, Oracle, MongoDB since 2026, at $149 per month. Free tier is query-based incremental.

Change data capture

Native. Postgres logical replication (pgoutput) with a consistent snapshot bootstrap. MySQL binlog with GTID cursors.

Log-based CDC for Postgres, MySQL, SQL Server, Oracle, MongoDB since 2026, at $149 per month. Free tier is query-based incremental.

Schema drift

New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.

New columns added by default. Type changes only with adjust_column_type. Dropped columns kept as NULL.

Schema drift

New columns added to the destination automatically. Add-only, nothing dropped, nothing rewritten.

New columns added by default. Type changes only with adjust_column_type. Dropped columns kept as NULL.

Parallel reads within a table

Yes. Large tables split into up to 64 shards (keyset, bitmap, or ctid) read concurrently.

Chunking is Pro. Free CLI defaults to one thread and one stream per table.

Parallel reads within a table

Yes. Large tables split into up to 64 shards (keyset, bitmap, or ctid) read concurrently.

Chunking is Pro. Free CLI defaults to one thread and one stream per table.

Row lineage

Every replicated row carries the run id and start time. CDC rows also carry operation, source position, and sequence.

_sling_loaded_at in snapshot mode. _sling_synced_at, _sling_synced_op, _sling_cdc_seq in CDC.

Row lineage

Every replicated row carries the run id and start time. CDC rows also carry operation, source position, and sequence.

_sling_loaded_at in snapshot mode. _sling_synced_at, _sling_synced_op, _sling_cdc_seq in CDC.

Cost

What drives billing

Nothing. Compute you already run.

Nothing for the free CLI. CLI Pro $79 per month. CLI Pro Max $149 per month. Platform $99 to $249 per month per team.

What drives billing

Nothing. Compute you already run.

Nothing for the free CLI. CLI Pro $79 per month. CLI Pro Max $149 per month. Platform $99 to $249 per month per team.

Paid tiers

None.

Pro for parallel streams, chunking, API sources, hooks, OpenTelemetry, retries. Pro Max for CDC and schema migration.

Paid tiers

None.

Pro for parallel streams, chunking, API sources, hooks, OpenTelemetry, retries. Pro Max for CDC and schema migration.

Comparison

Benchmarks

Benchmarks

benchmark

Wall time, seconds for a full load

Wall time, seconds for a full load

Wall time, seconds for a full load

Filament

Sling

NYC Taxi, PG → PG (298.3M rows)

114.8 s

1,053.3 s

TPC-H, PG → PG (8.7M rows)

3.79 s

42.74 s

Rows per second

Rows per second

Rows per second

Filament

Filament

Sling

Sling

Better

NYC Taxi, PG → PG

NYC Taxi, PG → PG

2,597,498

2,597,498

2,597,498

283,188

283,188

283,188

Filament 9.17×

TPC-H, PG → PG

TPC-H, PG → PG

2,288,144

2,288,144

2,288,144

202,645

202,645

202,645

Filament 11.29×

CPU seconds, summed across the mover's containers

CPU seconds, summed across the mover's containers

CPU seconds, summed across the mover's containers

Filament

Filament

Sling

Sling

Better

NYC Taxi, PG → PG

377.4

377.4

377.4

2,211.4

2,211.4

2,211.4

Filament 5.86×

TPC-H, PG → PG

17.9

17.9

17.9

91.0

91.0

91.0

Filament 5.08×

Peak memory, largest container

Peak memory, largest container

Peak memory, largest container

Filament

Sling

NYC Taxi, PG → PG

2.97 GiB

0.10 GiB

TPC-H, PG → PG

1.83 GiB

0.33 GiB

Last updated on August 31, 2026

Full Filament vs. Sling benchmark report

Full Filament vs. Sling benchmark report

Full Filament vs. Sling benchmark report

Migrate to

Migrate to

Copyright © 2026 Galaxy. All rights reserved.