anchor.diff:  author: pgrabowski
   ---
   
  -At ScyllaDB, we develop a high-performance NoSQL database https://www.scylladb.com/[Scylla], API-compatible with Apache Cassandra, Amazon DynamoDB and Redis. Earlier this year, we introduced support for https://docs.scylladb.com/using-scylla/cdc/cdc-intro/[Change Data Capture] in Scylla 4.3. This new feature seemed like a perfect match for integration with the Kafka ecosystem, so we developed the https://github.com/scylladb/scylla-cdc-source-connector[Scylla CDC Source Connector] using the Debezium framework. In this blogpost we will cover the basic structure of Scylla’s CDC, reasons we chose the Debezium framework and design decisions we made.
  +At ScyllaDB, we develop a high-performance NoSQL database https://www.scylladb.com/[Scylla], API-compatible with Apache Cassandra, Amazon DynamoDB and Redis. Earlier this year, we introduced support for https://docs.scylladb.com/using-scylla/cdc/cdc-intro/[Change Data Capture] in Scylla 4.3. This new feature seemed like a perfect match for integration with the Apache Kafka ecosystem, so we developed the https://github.com/scylladb/scylla-cdc-source-connector[Scylla CDC Source Connector] using the Debezium framework. In this blogpost we will cover the basic structure of Scylla’s CDC, reasons we chose the Debezium framework and design decisions we made.
   
   +++<!-- more -->+++
   
  
positive.code: ----
  
  Representing such operations would unnecessarily complicate the format in order to accommodate additional range information. Moreover, it would break the expectation that an Envelope represents a modification to a single row.
  
  By default, Scylla’s CDC stores the primary key and only the modified columns of an operation. For example, suppose I created a table and inserted a row:
  
  
negative.code: 
  The `v2` column is left unchanged after this query and we don’t have any information about its previous value. 
  
  We must be able to represent three possibilities: a column was not modified, a column was assigned a `NULL` value or a column was assigned a non-null value. The representation we chose was inspired by link:/documentation/reference/1.6/connectors/cassandra.html[Debezium Connector for Cassandra], which works by wrapping the value for a column in a structure:
  
  [source,json]
  ----
  