Databases with Change Data Capture
I was looking into Change Data Capture (CDC) stuff recently and realized there wasn’t a list of databases that have CDC stream support, so I decided to write up one myself.
If I’m missing one here, comment below or DM me on twitter with a link to some documentation and I’ll happily update it.
List of DB’s with CDC
- Postgres 10 and later, via logical replication. Schema changes and TRUNCATE commands currently do not get replicated, as well as some other things.
- MongoDB via oplog replication (since at least 3.2).
- Cassandra 3.0 and later has CDC logging The gotcha here is that the CDC logs are held locally on disk, and you’ll need to run a program on the Cassandra nodes to stream the CDC logs out (and delete the logs to free up space).
- Scylla 3.2 and later has experimental support for CDC.
- MySQL 3.23 and later has a statement-based binlog; however, you’ll need to parse the statements to infer the CDC, or use a plugin. You don’t get out of the box support.
- Redis 5.0 and later has Redis Streams, though similar to MySQL you’ll need to parse the statements.
- CockroachDB 19.1 and later has CDC support via Changefeeds. Core Changefeeds, in the OS version, will require some light parsing. DDL commands may cause issues, and IMPORT-ed data won’t make it into the feed. There are a few other limitations.