CDC pipeline cost: what change data capture actually charges you for
Change data capture replaces expensive full table reloads with a stream of row level changes, but it introduces its own meters: connector compute, log retention, stream throughput, and merge cost at the sink.
Quick answer
A CDC pipeline has four cost centres: connector or replication compute, source database log retention, stream transport, and merge processing at the destination. A managed replication instance sized at dms.t3.medium costs about $0.146 an hour, roughly $105 a month, plus storage. Against nightly full reloads of a 500 GB database, CDC typically cuts data movement by 98 percent and eliminates hours of source load. The costs that surprise teams are increased log retention on the source, per subscription stream charges, and merge operations at the sink that can exceed the transport cost several times over.
The pitch for change data capture is straightforward: instead of reading an entire table every night, read the database's own change log and ship only what changed. A 500 GB database that produces 4 GB of changes a day moves 4 GB instead of 500 GB. That part is true and the saving is real. What gets underestimated is that CDC replaces one simple cost with four smaller ones, and the fourth, merging changes into the destination, is frequently the largest.
The four meters
| Cost centre | What drives it | Typical monthly cost |
|---|---|---|
| Connector or replication compute | Instance size, always on | $105 to $800 |
| Source log retention | Extra storage and IOPS on the source | $20 to $300 |
| Stream transport | Bytes times fan out | $40 to $500 |
| Sink merge processing | Warehouse or cluster hours applying changes | $200 to $5,000 |
Connector compute
A managed replication instance must run continuously, because the moment it stops, the source log backs up. On AWS, dms.t3.medium is about $0.146 an hour, roughly $105 a month, and dms.c5.large about $0.278, roughly $200. Multi AZ doubles it. Self hosted connectors on a container platform have the same shape: a small always on task at a couple of hundred dollars a month. This is a fixed floor per source database, which is why consolidating ten small databases behind one replication instance matters more than the instance size.
Source log retention, the sneaky one
CDC requires the source database to retain its transaction log long enough for the connector to read it. Increasing binlog or WAL retention from the default to 7 days on a busy database can add hundreds of GB of storage. At gp3 rates of $0.08 per GB per month, 400 GB of extra log is $32 a month, which is minor. What is not minor is that on some engines the log lives on the same volume as the data, and running out of space causes an outage. Teams often over provision the volume by a comfortable margin, turning a $32 problem into a $200 one. Budget for it deliberately rather than discovering it during an incident.
Transport
If changes flow through a streaming service, the transport meter applies. At roughly $40 per TiB with per subscription billing, a pipeline moving 4 GB of changes a day is 120 GB a month, about $5 per subscription. Cheap. On shard based services a single shard at $0.015 per hour is about $11 a month plus put payload units. Also cheap. Transport is almost never the problem in CDC, which is why it gets all the attention and none of the savings.
The sink merge, which is usually the biggest line
Applying change rows to a destination table is not free. Every micro batch of changes must locate and update matching rows in a table that may hold billions. On a warehouse this is a merge statement; on a lake it is a rewrite of affected files.
| Merge frequency | Warehouse time/day (Medium) | Monthly cost at $3/credit |
|---|---|---|
| Every 1 minute | ~8 hours | ~$2,880 |
| Every 15 minutes | ~2.5 hours | ~$900 |
| Hourly | ~1 hour | ~$360 |
| Every 4 hours | ~0.5 hours | ~$180 |
The pattern is clear: merge frequency dominates. Each merge has a fixed overhead regardless of how few rows it applies, so a one minute cadence pays that overhead 1,440 times a day. Unless a downstream consumer genuinely needs minute level freshness, batching changes into 15 minute or hourly windows cuts this line by 70 to 90 percent while keeping data fresh enough for nearly every analytical use. Partitioning the target on a column correlated with recency also helps enormously, since the merge can then touch only recent partitions rather than scanning the full table, the same principle aspruning.
CDC versus full reload
| Approach | Data moved/month | Source impact | Approx. monthly cost |
|---|---|---|---|
| Nightly full reload, 500 GB | 15 TB | Hours of heavy read nightly | ~$900 plus source contention |
| CDC, 15 minute merges | 120 GB | Continuous, light | ~$1,040 |
| CDC, hourly merges | 120 GB | Continuous, light | ~$500 |
Note that CDC at one minute cadence can cost more than nightly full reloads. The saving comes from the combination of CDC and a sensible merge interval, not from CDC alone. Pick the interval from the actual freshness requirement, and remember that fresher data with a slow dashboard on top of it has not helped anyone. The replication instances, streams, and storage volumes are Terraform, and C3X prices them from theresource catalog before the pipeline is built.
FAQ
What does a CDC pipeline cost?
Four things: replication compute at roughly $105 to $800 a month depending on instance size and multi AZ, extra source log retention storage, stream transport at around $40 per TiB, and merge processing at the destination. The merge is usually the largest line, ranging from about $180 a month at four hour cadence to $2,880 at one minute cadence.
Is CDC cheaper than full table reloads?
Usually, but not automatically. Nightly full reloads of a 500 GB database move 15 TB a month, around $900 plus heavy source contention. CDC with hourly merges moves 120 GB and costs roughly $500. CDC with one minute merges can cost more than the full reloads it replaced, because merge overhead is paid 1,440 times a day.
Why is the merge step so expensive?
Each merge must locate matching rows in a destination table that may hold billions, and it pays a fixed overhead regardless of how few change rows it applies. At one minute cadence that overhead is incurred 1,440 times daily. Partitioning the target on a recency correlated column lets the merge touch only recent partitions, cutting the cost dramatically.
What merge interval should I use?
Pick it from the actual downstream freshness requirement. Moving from one minute to 15 minute merges typically cuts merge cost by around 70 percent, and hourly by about 87 percent, while remaining fresh enough for nearly every analytical use case. Reserve sub minute cadence for the small set of tables that genuinely drive real time decisions.
Does CDC affect the source database cost?
Yes. The source must retain its transaction log long enough for the connector to read it, which on a busy database can add hundreds of GB of storage. At gp3 rates that is modest, around $32 a month for 400 GB, but the operational risk of filling the volume leads many teams to over provision, turning a small cost into a larger one.
How does C3X help with CDC cost?
C3X prices the Terraform managed components before the pipeline exists: replication instances and their multi AZ setting, stream and topic definitions, the extra storage provisioned for log retention, and the network paths carrying changes. That makes the fixed infrastructure floor of a CDC design visible in the pull request.
What to do next
Price replication infrastructure before it runs continuously. C3X costs your Terraform resources in review. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.