Artie
A managed change data capture service that copies every insert, update and delete from production databases into a warehouse, aiming for under a minute of delay.
- What it is
- ETL & ELT pipelines
- Type
- Commercial product
- Made by
- Artie Technologies Inc.
- License
- Proprietary managed service. Its writer, Artie Transfer, was published on GitHub under the source-available Elastic License 2.0 from 2023, but that repository is no longer public (404 in October 2026); the Terraform provider and CLI are MIT
- Facts checked
- 6 October 2026
What it is
An Artie pipeline has two halves. A source reader connects to your database and follows its transaction log: logical replication of the write-ahead log for PostgreSQL, the binlog for MySQL, change streams for MongoDB and DocumentDB, DynamoDB Streams, or PlanetScale’s VStream API. Every change goes into an internal Kafka topic. A writer reads that topic, keeps changes in memory and collapses several changes to the same primary key into one. When a flush rule fires (enough seconds, rows or bytes), it writes the batch to the destination as an idempotent upsert or MERGE, then commits its Kafka offset. A new table starts with a backfill that scans it in batches, optionally from a read replica, while live changes wait in Kafka and are applied once the scan finishes. One reader can feed several pipelines, so the database is read once for Snowflake and S3 alike. Table settings add a history table that records every change as a row, soft deletes, and column exclusion or hashing.
Artie always hosts the control plane: dashboard, configuration and monitoring. The data plane runs in Artie’s cloud in your region or, on the Enterprise plan, inside your own cloud account (bring your own cloud), where you provide Kubernetes, Kafka and storage and Artie operates it remotely. You configure it in the dashboard, through a REST API, a Terraform provider or an MCP server. Billing counts rows changed after the first backfill; backfills are free. As of October 2026 the Free plan covers 1 million rows a month and two pipelines, Growth starts at $500 a month billed annually, and Enterprise, which adds Oracle, SQL Server, Iceberg and Delta Lake, is priced by quote.
Why teams pick it
- No Debezium, Kafka cluster or merge code to run yourself: Artie operates the reader, the buffer and the writes into the warehouse
- Backfills run alongside live replication and never count toward the bill
- One source reader can feed several destinations, so a Postgres replication slot or MySQL binlog is read only once
- Warehouse-friendly writes: changes are deduplicated per key before each batched merge, with history tables and soft deletes available as table settings
Watch out for
- A closed service from a young company (founded 2023, about $15M raised by early 2026). The Transfer source it once published is no longer public, so there is no self-hosted fallback outside an Enterprise contract
- It copies tables rather than transforming them: in-flight options are column-level (exclude, hash, encrypt), so joins and modelling still happen downstream, for example in dbt
- Databases only, plus an events API: no SaaS-app connectors, and Oracle, SQL Server, Iceberg, Delta Lake and MySQL destinations need the Enterprise plan
- Log-based CDC still costs the source something: a stalled Postgres replication slot keeps WAL until the disk fills, so the docs ask you to set heartbeats and
max_slot_wal_keep_size - Rows bigger than the internal Kafka message limit (2 MB by default) are skipped unless you turn on message compression
Alternatives
What all etl & elt pipelines have in common →
DagsterOpen sourceA Python data orchestrator built around assets: you declare the tables, files and models that should exist, and Dagster works out what to run.
dbtOpen sourceSQL `select` statements in git, built into warehouse tables in dependency order, with tests and docs alongside.
EstuaryCommercialA managed data-movement platform that captures changes from databases and SaaS sources into collections kept as JSON files in your own bucket, then keeps warehouses and other systems in sync, in real time or on a schedule.
FivetranCommercialManaged connectors that copy data from SaaS apps, databases and files into your warehouse or lake, billed by the rows that change each month.
MeltanoOpen sourceA command-line ELT tool that runs Singer taps and targets from a `meltano.yml` project kept in git.
OLakeOpen sourceAn open-source tool in Go that copies databases, Kafka topics and S3 files into Apache Iceberg tables (or plain Parquet), with full loads, incremental syncs and CDC, and no Kafka, Debezium, Spark or Flink in between.How it fits with other technologies
What Artie uses
- Artiestreams WAL changes out ofPostgreSQL
- Artiereads the binlog ofMySQL
- Artiereads change streams fromMongoDB
- Artiebuffers every change event inApache Kafka
- Artiemerges batched changes intoSnowflake
- Artiemerges batched changes intoGoogle BigQuery
- Artiemerges batched changes intoDatabricks
- Artiewrites tables (Enterprise plan) intoApache Iceberg
- Artieis configured as code throughTerraform
- Artiecompetes for real-time CDC withEstuary
A Postgres-to-Snowflake pipeline with the Artie Terraform provider · hcl
terraform {
required_providers {
artie = { source = "artie-labs/artie" }
}
}
provider "artie" {
api_key = var.artie_api_key
}
resource "artie_connector" "postgres" {
name = "Production Postgres"
type = "postgresql"
postgresql_config = {
host = "db.internal.example.com"
port = 5432
username = "artie"
password = var.postgres_password
}
}
resource "artie_connector" "snowflake" {
name = "Snowflake analytics"
type = "snowflake"
snowflake_config = {
account_identifier = "myorg-analytics"
virtual_dwh = "COMPUTE_WH"
username = "ARTIE"
private_key = var.snowflake_private_key
}
}
# one reader (one replication slot) can feed several pipelines
resource "artie_source_reader" "shop" {
name = "shop reader"
connector_uuid = artie_connector.postgres.uuid
database_name = "shop"
}
resource "artie_pipeline" "shop_to_snowflake" {
name = "shop to Snowflake"
source_reader_uuid = artie_source_reader.shop.uuid
destination_connector_uuid = artie_connector.snowflake.uuid
destination_config = {
database = "ANALYTICS"
schema = "SHOP"
}
tables = {
"public.orders" = { name = "orders", schema = "public", enable_history_mode = true }
"public.customers" = { name = "customers", schema = "public" }
}
soft_delete_rows = true
}Free, Growth and Enterprise#
List prices from artie.com/pricing, checked 6 October 2026. Every plan uses the same pipelines; the plans differ in volume, connectors and where the data plane runs.
| Free | Growth | Enterprise | |
|---|---|---|---|
| Price | $0 | From $500 a month billed annually ($6,000 a year), $600 month to month; volume discounts above the commitment | Custom |
| Billable rows | Up to 1 million a month | Unlimited, billed by volume | Unlimited, by contract |
| Active pipelines | 2 | Unlimited | Unlimited |
| Sources | PostgreSQL, MySQL, MongoDB, DynamoDB, DocumentDB, CockroachDB, PlanetScale, Supabase, Amazon Keyspaces | Same as Free | Adds Oracle and SQL Server, including archive-log replication |
| Destinations | Snowflake, BigQuery, Databricks, Redshift, ClickHouse, MotherDuck, PostgreSQL, S3, GCS | Same as Free | Adds Iceberg, Delta Lake, SQL Server and MySQL |
| PrivateLink | No | $500 a month per connection | Included |
| Data plane in your own cloud | No | No | Yes |
| SSO, role-based access, HIPAA | No | Yes (HIPAA needs a signed BAA) | Yes |
- Billable rows are rows processed after a table’s first backfill; backfills, including ones you rerun later, are never counted.
- New accounts get a 14-day Growth trial that starts when the first pipeline is deployed, then drop to Free if they fit its limits.
See it in a real stack
No architecture uses Artie yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2022–2026
Robin Tang had built change-data pipelines twice before Artie. At a startup acquired by Zendesk, CDC and Kafka were part of the core architecture. At Opendoor he assembled streaming pipelines from Debezium, Kafka, custom merge logic and schema inference, and after a year of work, observability and recovery from odd edge cases were still missing. Meanwhile most companies still loaded their warehouses with batch jobs every few hours or overnight.
In 2022 he started building his own replication tool, and in early 2023 he launched Artie with Jacqueline Cheong, a former investor in public software companies, who took on the business side. The first public piece, Artie Transfer, was a Go service under the Elastic License that read Debezium change events from Kafka and merged them into Snowflake. Artie joined Y Combinator’s Summer 2023 batch. Its first customer, Substack, went from warehouse data hours old to 10 to 15 seconds behind.
Since then Artie has replaced the do-it-yourself parts with its own readers and a hosted Kafka buffer, added more warehouses and lakes, raised a $3.3M seed (2024) and a $12M Series A (2026), and opened a free plan. The Transfer repository, public with about 800 stars in early 2026, is no longer visible.
Why it’s built this way
- Kafka between the reader and the writer
- The reader can keep pace with the database even when a warehouse is slow. Changes queue up during a backfill, and a pipeline paused for writing only can resume within 14 days without a new backfill.
- Batched merges, deduplicated per key
- Warehouses handle a few large merges far better than a stream of single-row updates. Collapsing repeated changes to one row before each flush cuts the volume written, and Artie argues small continuous merges use less Snowflake compute than bulk loads every hour or two.
- Bill changed rows, not table size
- Charging only for rows processed after the first snapshot makes backfills and re-syncs free, so fixing a broken table doesn’t cost extra.
- Source-available rather than open source
- The Elastic License 2.0 let anyone read, run and modify Transfer but forbade offering it as a hosted service, which kept the managed product protected.
Timeline
- 2022
Robin Tang starts building his own CDC replication tool
- 2023
Artie Transfer appears on GitHub under ELv2: Debezium events from Kafka into Snowflake
- 2023
Joins Y Combinator’s Summer 2023 batch
- 2024
$3.3M seed led by Exponent Founders Capital
- 2026
$12M Series A led by Standard Capital in January
- 2026
Free plan launches in August; the Transfer repository is no longer public
- Artie: About us (Robin Tang’s timeline, Zendesk and Maxwell, 2022 MVP)
- Artie blog: Artie raises $3.3M seed round (Feb 2024)
- Artie blog: Series A, real-time data streaming platform (Jan 2026; Opendoor pipelines)
- Y Combinator: Artie (Summer 2023, founders)
- GitHub: artie-labs/transfer README, January 2023 snapshot (ELv2, Debezium on Kafka, Snowflake only) · archived copy, original
- GitHub: artie-labs/transfer, February 2026 snapshot (801 stars) · archived copy, original
- Artie blog: Artie’s free plan is live (Aug 2026)
Sources14 · facts checked 6 October 2026
- Artie docs: Architecture (reader, Kafka buffer, writer; cloud and BYOC data planes)
- Artie docs: Pipelines (shared source readers, pause modes, 2 MB message limit)
- Artie docs: Backfills
- Artie docs: Flush rules
- Artie docs: Glossary (history mode)
- Artie docs: documentation index (sources, destinations, Terraform, MCP)
- Artie docs: PostgreSQL troubleshooting (replication slot growth)
- Artie docs: Preventing WAL growth on RDS Postgres
- Artie pricing (checked 2026-10-06)
- Artie: home page (column inclusion, exclusion, encryption and hashing)
- Artie docs: ELv2 licence addendum for Transfer
- GitHub: artie-labs organisation (public repositories)
- GitHub: artie-labs/terraform-provider-artie (MIT)
- Artie blog: seed and Series A announcements (funding amounts)