Sling

Sling is an open-source CLI for YAML-based database and file replication, with paid API sources, scheduled CDC, and a Platform for job management.

Best for: Engineers running version-controlled database and file replication on their own infrastructure.

Editor’s note: This Sling review is based on my hands-on test of Sling CLI v1.6.5 and the Sling Platform free plan, in October 2026. I weighed pricing, setup, replication, CDC, connectors, and agents against dlt, Airbyte, and Fivetran.

Quick verdict: I recommend Sling for version-controlled database and file loads without per-row billing. API sources, hooks, and parallelism require $79/month Pro; CDC requires $149/month Pro Max. Every Platform agent is self-hosted.

In this Sling review, I’ll take a closer look at pricing, load modes, connectors, and Platform agents so you can decide whether YAML-based replication fits your stack.

Sling packages replication into one Go binary for Linux, macOS, and Windows. Its catalog spans 32 database pages, 12 storage systems, four datalake entries, and 94 API specs, although API access isn’t free.

Key Takeaways:

  • Five free load modes cover full-refresh, incremental, truncate, snapshot, and backfill.
  • CLI Pro and Pro Max include unlimited connections, volume, and executions, unlike Fivetran’s monthly active row billing.
  • CDC is paid and bounded: five source-engine families require Pro Max or Platform Advanced and run as scheduled micro-batches.
  • No hosted agents: even paid Platform plans require your compute; Sling-hosted agents are “coming soon.”
  • Type mapping needs testing: open v1.6.5 regression #826 affects integers written into Redshift VARCHAR columns during incremental loads.

Pros and Cons

Pros

  • Free GPL-3.0 CLI includes full-refresh, incremental, truncate, snapshot, and backfill modes.
  • CLI Pro costs $79/month with unlimited connections, volume, and executions.
  • One Go binary covers 32 database entries, 12 storage systems, and 94 API specs.
  • Paid CDC supports five source-engine families, with Iceberg and DuckLake among destinations.
  • Six releases shipped between August 31 and October 8, 2026.

Cons

  • API sources, hooks, and parallel streams require the $79/month CLI Pro token.
  • CDC and schema migration require $149/month Pro Max or $249/month Platform Advanced.
  • No Sling-hosted agents: every Platform agent runs on infrastructure you provide.
  • Open v1.6.5 regression #826 writes integers as boolean strings into Redshift VARCHAR targets.
  • GPL-3.0 complicates embedding the CLI in distributed proprietary products.

Sling Pricing: How Much Does It Cost?

The Sling CLI is free forever, with Pro at $79/month and Pro Max at $149/month. The separate Platform ladder costs $0, $99, or $249/month. Paid CLI subscriptions include unlimited connections, volume, and executions; Platform tiers distinguish features and production agents rather than rows or GB.

  • Sling CLI (free): for database, file, and storage replication. Includes all five load modes, wildcards, variables, schema evolution, and the Python wrapper.
  • CLI Pro ($79/mo): for API sources and parallel workloads. Adds retries, chunking, capture deletes, pipelines, hooks, 50+ staged transform functions, state-based incremental, OpenTelemetry logging, ODBC, and community support. Each team needs one subscription with two tokens: one production and one development. Supply the token through SLING_CLI_TOKEN on CLI 1.4+.
  • CLI Pro Max ($149/mo): for CDC and schema migration, including primary keys, foreign keys, indexes, defaults, and constraints. Adds priority support.
  • Platform Free ($0): for the web IDE, incremental/backfill loads, schema evolution, and custom DDL. Includes one development agent but no production agent or scheduled jobs.
  • Platform Standard ($99/mo): for scheduling with 1 production agent. Includes API sources, transforms, pipelines, and hooks, plus email, Slack, and MS Teams alerts.
  • Platform Advanced ($249/mo): for 3+ production agents, full self-hosting, CDC, and schema migration. Adds GitHub/GitLab/Bitbucket integration, roles, user activity logs, monitoring, and priority support.
PlanPriceSchedulingAPI sourcesCDCBest for
Sling CLIFreeExternal orchestratorNoNoDatabase/file batches
CLI Pro$79/monthExternal orchestratorYesNoAPIs and parallel loads
CLI Pro Max$149/monthExternal orchestratorYesYesScheduled CDC
Platform FreeFreeNo scheduled jobsNoNoWeb IDE evaluation
Platform Standard$99/month1 production agentYesNoUI-managed jobs
Platform Advanced$249/month3+ production agentsYesYesCDC and self-hosted control plane

The CLI Pro trial lasts seven days, without a credit card; Platform self-hosting has a separate 10-day trial. The Pro trial token comes from dash.slingdata.io. Monthly billing is the self-serve option. Yearly CLI Pro or Platform purchases use an offline license paid by wire transfer.

Is Sling Good Value for Money?

  • Against Fivetran: Sling Pro stays $79/month regardless of volume. Fivetran bills by monthly active rows beyond its free 500,000 MAR allowance.
  • Against Airbyte Cloud: Sling’s paid CLI starts below Airbyte’s $189/month package for 40 credits, but you operate Sling’s compute.
  • Against Estuary: Sling avoids $0.50/GB and $100/month per connector instance. Estuary offers continuous streaming rather than Sling’s bounded CDC.
  • Against CloudQuery: CloudQuery prices by rows synced per year with a free tier of 1M rows; Sling’s paid CLI has no row metering.
  • For existing infrastructure: I recommend Sling when an orchestrator already exists. Flat software pricing doesn’t remove infrastructure or maintenance costs.

Reviewer’s Notes: Start with the free CLI under your existing orchestrator. Buy Pro for API specs or parallel streams, and Pro Max for CDC. Choose Platform Standard when its web UI, alerts, and scheduling replace orchestration you otherwise maintain.

My Experience With Sling

Installing the CLI

I installed Sling with brew install slingdata-io/sling/sling and used CLI v1.6.5, released October 8, 2026. The single Go binary runs on macOS, Linux, and Windows; the script installer defaults to ~/.sling/bin.

Other installation choices include:

  • Mac/Linux: the curl installation script or a manual binary.
  • Windows: Scoop, PowerShell installation, or a manual binary.
  • Containers: the slingdata/sling Docker image.
  • Python: pip install sling, which also exposes the wrapper, or pip install "sling[arrow]" for streaming. Requires Python 3.9+.

For production, pin the CLI version rather than rely on an unversioned installation command. The v1.6.5 Redshift regression makes an upgrade check more valuable than automatically adopting each release.

Setting Up Connections

I defined MY_PG as a named connection before writing replication YAML. sling conns set stores connection details in ~/.sling/env.yaml; Sling also reads environment variables and existing ~/.dbt/profiles.yml profiles.

sling conns set MY_PG url="$MY_PG_URL"
sling conns test MY_PG
sling conns discover MY_PG
sling conns list

I supplied the connection URL through an environment variable rather than embedding credentials in the command. I then ran test to check connectivity and discover to list tables for stream selection; list showed the stored connections.

For a dbt-based stack, profile reuse avoids maintaining another copy of connection settings solely for Sling. Keep the connection configuration separate from the replication YAML so the job definition can stay in version control without its credentials.

Running My First Load

I ran the ad-hoc CSV load against a disposable destination. The command names the source file, target connection, and destination object explicitly.

sling run --src-stream file:///tmp/orders.csv \
  --tgt-conn MY_PG \
  --tgt-object public.orders_csv

Sling loads into a temporary table first across all five batch modes. The default full-refresh mode still drops and recreates the destination; temporary staging does not preserve an existing target’s DDL or grants.

Use truncate when those definitions must survive the replacement load. I recommend a disposable table for the first CSV command because the default mode is destructive.

Writing a Replication YAML

I moved the repeatable database copy into replication.yaml, with MY_PG as the source and MY_PG_STAGING as a separately configured staging connection.

source: MY_PG
target: MY_PG_STAGING
defaults:
  mode: incremental
  object: "public.{stream_schema}_{stream_table}"
streams:
  public.orders:
    primary_key: id
    update_key: updated_at

I ran it with sling run -r replication.yaml. The object template maps public.orders to public.public_orders, retaining the source schema in the destination name.

Sling’s YAML separates configuration into:

  • Root settings: source, target, defaults, streams, hooks, and env.
  • Stream selection: explicit names, wildcards such as public.*, or tags.
  • Row controls: select, where, custom sql, and transforms.
  • Replication controls: mode, primary_key, update_key, and explicit columns.

I selected one explicit stream rather than a wildcard. That kept the staging configuration focused on public.orders instead of including other tables with different type mappings.

What Happened on Incremental Runs

I examined incremental behavior using updated_at as the update key. With no existing watermark, Sling reads the whole source table and creates the destination using inferred types.

Later runs select rows where update_key > max(update_key) in the target. A primary key enables upserts rather than append-only loading.

Rows arriving at or below the watermark are skipped unless custom SQL adds a lookback using {incremental_value}. dlt expresses pipeline logic in Python; Sling keeps this database-copy configuration in YAML.

Reviewer’s Notes: Keep env.yaml out of Git and commit only replication configuration. Version 1.6.5 supports external secret references, including 1Password, AWS, Azure, GCP, Vault, and Doppler, so production credentials don’t need to live in committed YAML.

Load Modes, Incremental Sync and CDC

Sling’s five free load modes cover replacement loads and incremental batches without requiring Pro. Choose truncate rather than the default full-refresh when an existing destination’s grants and custom DDL must survive.

  • Full-refresh: drops and recreates the target after staging the load.
  • Incremental: merges or appends new records using the configured keys.
  • Truncate: clears target data while preserving DDL and grants.
  • Snapshot: appends the complete dataset with a timestamp column.
  • Backfill: loads a specified date or key range.

CLI Pro hooks run at start and end of a replication and at pre, post, pre_merge, and post_merge of each stream. CLI Pro pipelines are standalone ordered steps.

Use backfill for a bounded historical reload. It addresses a different requirement from snapshot, which adds another complete copy of the dataset.

Change Data Capture

CDC requires CLI Pro Max at $149/month or Platform Advanced at $249/month. Its five source-engine families use different capture mechanisms:

SourceCapture mechanism
MySQL/MariaDBBinlog
PostgreSQLWAL
SQL ServerCDC change tables
OracleGoldenGate Data Streams
MongoDBChange streams

CDC destinations include:

  • Warehouses: Snowflake, BigQuery, Redshift, and Databricks.
  • Analytical databases: DuckDB, MotherDuck, and ClickHouse.
  • Lake tables: Iceberg and DuckLake; Iceberg requires primary_key and uses REST, Glue, S3 Tables, or SQL catalogs.

The initial load is chunked and resumable, but subsequent capture doesn’t run indefinitely. Each execution stops at limits controlled by run_max_events or run_max_duration, then exits.

Treat this as scheduled micro-batch CDC, not Estuary’s continuous streaming model. Include the scheduler’s cadence in your freshness requirements alongside the source capture setup.

Where Type Mapping Breaks

Sling infers destination types across database engines, and type conversion is a recurring weakness. Check decimal precision and boolean representation in the stored destination values, not just whether the load completed.

  • Issue #92: Parquet decimal values written as strings; closed.
  • Issue #626: PostgreSQL boolean copying into ClickHouse; closed.
  • Issue #720: unexpected SQL Server decimal scale in Snowflake; open.
  • Issue #825: SQL Server SMALLINT/TINYINT through Databricks Zerobus fall back to text; open, filed October 27, 2026.
  • Issue #826: v1.6.5 writes integers into Redshift VARCHAR columns as 'true' or 'false' during incremental loads; open, filed October 28, 2026.

Issues #92 and #626 are closed, but #720, #825, and #826 remain open and still warrant engine-pair-specific checks. I recommend pinning the CLI version and defining columns explicitly for critical tables, then comparing actual stored values during upgrade testing.

Connectors, API Specs and File Formats

Sling’s catalog contains 32 database entries, four datalake entries, 12 storage systems, and 94 API specs. Some database entries are generic interfaces, including ADBC and ODBC, rather than individual database products.

Representative coverage includes:

  • Databases: PostgreSQL, MySQL, SQL Server, Oracle, MongoDB, and DynamoDB.
  • Warehouse and analytics engines: Snowflake, BigQuery, Redshift, Databricks, ClickHouse, DuckDB, Fabric, and Trino.
  • Datalake entries: Athena, DuckLake, Iceberg, and LanceDB.
  • Storage: S3, GCS, Azure, SFTP, Google Drive, and local files.

I recommend selecting Sling around a specific source-to-target route, not the combined catalog count. PostgreSQL-to-Snowflake replication and API ingestion involve different configuration and paid-feature requirements.

API Specs

API sources require CLI Pro or Platform Standard. An API-type connection can select an official definition with spec: stripe; HubSpot and GitHub also have specs.

The YAML definitions support:

  • Authentication: Bearer, Basic, and OAuth2.
  • Response handling: pagination and JMESPath extraction.
  • Endpoint orchestration: queues and dynamic endpoints.
  • Incremental retrieval: persisted sync state.

I like having API behavior expressed in editable YAML, but Sling’s 94 specs offer a narrower starting point than Fivetran’s 700+ managed connectors or Meltano’s 600+ Singer-based connectors. For SaaS-heavy ingestion without connector maintenance, I prefer Fivetran.

File Formats

Sling reads more formats than it writes, which limits its usefulness as a general format converter.

  • Read: CSV, XML, XLSX, JSON, JSONLines, Parquet, Avro, Arrow, Delta, SAS7BDAT, GeoJSON, and raw.
  • Write: CSV, XLSX, JSON, Parquet, and raw.
  • Bucket selection: glob patterns across S3, GCS, and Azure storage.

For example, Avro is read-only within this format list; Parquet supports both directions.

Python, dbt and Beyond EL

The Python wrapper exposes Replication, ReplicationStream, and HookQuery for dynamically constructed jobs. Use it when table selection needs code rather than static YAML; Python 3.9+ is required.

sling build runs SQL models with dependency resolution and handles materializations, macros, seeds, data tests, and incremental models. Sling also ships a CLI MCP server, a VS Code extension, and the local Sling Assist helper; dbt stays my modeling layer.

Sling Platform: Agents, Scheduling and Self-Hosting

The Sling Platform separates a control server and database from the agents that execute the CLI, with a web UI for management. Agents connect outward over secure NATS websockets; replicated data flows through the agent, while the control server receives results and logs.

Credentials can remain in the agent’s local env.yaml. I recommend this architecture when database access must stay within infrastructure you control, provided your team also operates the execution environment.

  • Development agent: every plan includes one self-hosted development agent. It cannot be selected for scheduled jobs.
  • Standard: $99/month includes 1 production agent, enabling scheduled runs and alerts.
  • Advanced: $249/month includes 3+ production agents, plus CDC and additional administrative controls.
  • Project boundary: each production agent belongs to one project. Multiple projects therefore need additional agents.
  • Hosted execution: Sling-hosted cloud agents are “coming soon,” not available today.
  • Full self-hosting: Advanced supports hosting the control server, with a 10-day trial. Kubernetes, high-availability agents, OIDC SSO, and TOTP MFA are supported.

Map projects to agents when selecting a plan. Standard’s single production agent fits one project’s scheduled work; it is not a shared production runner across unrelated projects.

Advanced adds monitoring for volume, existence, freshness, and schema changes. I recommend it for those requirements or full control-plane self-hosting, not simply because a workload contains more rows.

Unlike Sling, Airbyte Cloud and Fivetran run the compute for you. Paying for Sling’s web interface removes neither agent deployment nor responsibility for maintaining the execution environment.

Platform Free’s development agent supports evaluation, but its lack of a production agent rules out scheduled jobs. Start with Standard if scheduling through the web interface is the requirement.

Best for: engineers who want centralized job management while retaining execution control. Skip if: you want a hosted service that also operates the ingestion workers.

How Does Sling Compare to Competitors?

ToolModelStarting priceLicense/hostingWins at
SlingYAML CLI plus PlatformFree; Pro $79/monthGPL-3.0 CLI; self-hosted executionDatabase/file copies
dltPython library plus managed platformFree; dltHub $12,000/monthApache 2.0 library; managed optionCustom Python pipelines
AirbyteCore plus CloudCore free; Cloud $189/monthSelf-hosted Core or hosted CloudHosted ingestion option
FivetranManaged ELTFree to 500,000 MARHosted; MAR billingLow-operations SaaS ingestion
EstuaryManaged streaming ELTFree to 10 GB/month and 2 connectorsHosted; usage and connector billingContinuous CDC
MeltanoSinger-based integrationFreeOpen source; self-hostedSinger connector breadth
  • Sling vs dlt: dlt’s free Apache 2.0 Python library is my pick for Python-first teams writing custom API pipelines. Its managed dltHub platform costs $12,000/month with 5,000 credits and a 12-month minimum, plus a 14-day trial with $30 credits; Sling is the better fit when you want database and file copies expressed in YAML rather than Python code.

  • Sling vs Airbyte: Airbyte Core is free to self-host, while Cloud credit packages start at $189/month for 40 credits. Airbyte Cloud offers a 14-day trial with 400 credits; choose it over Sling when hosted execution matters more than flat CLI pricing and direct control of the ingestion workers.

  • Sling vs Fivetran: Fivetran includes 700+ connectors and a free allowance of 500,000 monthly active rows before MAR-based billing applies. Each new connection has a 14-day trial. I recommend it for SaaS ingestion with minimal infrastructure work, while Sling’s unlimited-volume paid CLI is more appealing when you already operate the compute and need predictable software charges.

  • Sling vs Estuary Flow: Estuary’s free tier includes 10 GB/month and two connectors; paid Cloud pricing is $0.50/GB plus $100/month per connector instance. I recommend Estuary for continuous CDC rather than trying to turn Sling’s bounded executions into a permanently running stream.

  • Sling vs Meltano: Meltano is free, open source, and offers 600+ Singer-based connectors without per-row pricing. Shortlist it when a required Singer tap sits outside Sling’s 94 API specs and you can maintain the self-hosted integration; Sling remains my preference for declarative database-to-warehouse copies.

  • Sling vs CloudQuery: CloudQuery prices by rows synced per year with a 1M-row free tier. Choose CloudQuery over Sling’s paid CLI when its free allowance covers your workload; Sling wins when you need paid replication without row metering.

My default shortlist is Sling and dlt for engineer-operated pipelines, with the configuration language deciding the first trial. Choose Sling for YAML-defined database and file replication, or dlt when custom extraction belongs in Python code.

For a team unwilling to run ingestion infrastructure, I recommend Airbyte Cloud or Fivetran instead. Sling Platform adds management and scheduling, but every execution agent still runs on infrastructure you supply.

How I Reviewed Sling

I installed Sling CLI v1.6.5 and evaluated the Platform free plan around database and file replication. I configured named connections, ran an ad-hoc file load, created a replication YAML, and examined incremental watermark handling.

My evaluation criteria were:

  • Pricing and value: free capabilities, paid feature gates, and external compute costs.
  • Setup effort: named connections, credential handling, and reusable replication configuration.
  • Load behavior: batch modes, late-arriving data, and CDC execution boundaries.
  • Coverage: database/storage connections and API spec structure.
  • Operations and reliability: agent ownership, release cadence, and open type-mapping issues.

I compared plan requirements and prices with dlt, Airbyte, Fivetran, Estuary, and Meltano. For the Platform free plan, I weighed the development agent against its lack of scheduled jobs.

I gave the v1.6.5 Redshift regression more weight than the six-release cadence because data correctness mattered more to my recommendation than update frequency.

Prices current as of October 2026.

Should You Use Sling for Data Replication?

I recommend Sling for engineer-operated database and file replication, especially when version-controlled YAML fits an existing orchestrator. Its free CLI covers the five main batch modes, and paid CLI subscriptions avoid volume metering. The trade-offs are self-hosted execution and type mappings that need explicit testing.

  • Choose the free CLI if you already operate scheduling and need database-to-warehouse or file loads. Move to $79/month Pro when API specs or parallel streams become necessary.
  • Choose $149/month Pro Max for scheduled CDC into destinations such as Iceberg or DuckLake. Its bounded runs suit scheduled replication, not continuous streaming.
  • Choose Fivetran or Airbyte Cloud if operating ingestion agents is outside your team’s remit. Sling Platform adds management, not hosted workers.
  • Choose Estuary if continuous CDC is the primary requirement rather than scheduled replication.

I don’t recommend production adoption solely because a first load completes. Check decimal precision and boolean values, then exercise the incremental watermark with late-arriving records. Include the v1.6.5 Redshift regression in that decision if your destination uses VARCHAR columns for integer values.

Start with one staging replication: install the CLI from Sling and run a YAML file against a staging copy. Activate the seven-day Pro trial when API specs or parallelism enter that evaluation.

FAQ

Is Sling free?

Sling’s GPL-3.0 CLI is free forever for core database, file, and storage replication. CLI Pro costs $79/month, and Pro Max costs $149/month. The Platform has Free, $99/month Standard, and $249/month Advanced plans. Start with the free CLI unless API sources, parallel streams, or paid management features are required.

Does Sling support CDC?

Sling supports CDC for MySQL/MariaDB, PostgreSQL, SQL Server, Oracle, and MongoDB on CLI Pro Max or Platform Advanced. Runs stop at event or duration limits and then exit. Use it for scheduled micro-batches, not continuous streaming. The initial load is chunked and resumable; later capture requires scheduled executions.

Is Sling an ELT or ETL tool?

Sling is primarily an extract-and-load tool, with light in-flight transformations and separate SQL modeling through sling build. Paid staged transforms include more than 50 functions. I recommend replication as its core role, then evaluating its transformation features against the specific work currently handled by SQL or dbt.

Can I self-host the Sling Platform?

You can self-host the complete Sling Platform on the $249/month Advanced plan, with a 10-day self-hosting trial. It supports Kubernetes deployment, OIDC SSO, and TOTP MFA. Execution agents are already self-hosted on every plan; Advanced additionally lets you host the control server rather than just the workers.

Sling vs Airbyte: which is cheaper?

Sling’s paid CLI starts at $79/month, below Airbyte Cloud’s $189/month package for 40 credits, but Sling requires your compute. Both Sling’s core CLI and Airbyte Core are free to self-host. Compare infrastructure and operating costs alongside subscriptions: Sling’s lower software price does not remove the cost of running its workers.

Spotted a wrong price or a missing integration? Send a correction. A human reads every one.

Similar tools

Other tools in the same category, with the same card and the same honest pricing.

Free open source; managed via Stitch from $100/month

Singer

Open-source ELT

Singer is a specification plus a free Apache-2.0 library for connecting taps and targets over Unix pipes, with self-managed operating infrastructure.

Visit site

Nexla

Enterprise ETL

Nexla is a data integration platform with reusable Nexsets, 1,000+ bidirectional connectors and ETL, CDC, streaming, API and RAG workflows.

Visit site

Weld

Managed ELT

Weld combines ELT, SQL models, orchestration, and reverse ETL, with over 200 sources and an AI SQL agent included on every plan.

Visit site

Improvado

Managed ELT

Improvado loads marketing and sales data into warehouses, harmonizes metrics with its MCDM, and provides governance, an AI Agent, and MCP access.

Visit site

Supermetrics

Managed ELT

Supermetrics connects marketing data to Sheets, Looker Studio, Excel and Power BI, with about 175 connectors and Enterprise-only warehouse destinations.

Visit site

Funnel

Managed ELT

Funnel combines 600+ connectors with managed marketing-data preparation, currency conversion, dashboards and unlimited users on every plan.

Visit site

Adverity

Managed ELT

Adverity Connect collects, harmonizes, and monitors marketing data with 600+ connectors, four default quality monitors, and 40+ destinations.

Visit site

Keboola

Managed ELT

Keboola combines data ingestion, SQL/Python transformations, scheduled flows, and Streamlit apps in a managed ELT platform.

Visit site
Free allowance; Enterprise quote

CloudQuery

Open-source ELT

Self-hosted cloud infrastructure ingestion into your own database, with SQL-based inventory analysis and optional MCP access.

Visit site