Learn Debezium (change data capture for modern databases) from the basics to production-grade: pre-requisites & environment setup, background history & why CDC, core concepts & architecture, installation & connector setup, snapshot streaming & offset management, payload format & schema evolution, filtering routing & topic design, monitoring handling failures & debugging, integration with consumers & sinks, schema registry & data contracts, security & data privacy, connector lifecycle & GitOps, distributed deployment & high availability, auditability & data observability, cross-region & hybrid topologies, performance & throughput, multi-database & multi-cluster CDC, custom SMT & connector extensions, change event handling patterns, operational readiness & runbooks, real-world use cases & patterns, ecosystem & tools, through future-proofing CDC skills, across 23 episodes.
Before touching Debezium, you need to master relational database concepts, transaction logs, data streaming, and Apache Kafka. In this episode you'll set up a Docker environment, run Kafka in KRaft mode and Kafka Connect, then verify your first Debezium runtime.

This episode explores the history and background behind the birth of Debezium, from the evolution of batch ETL toward change data capture, the Red Hat journey to Apache, as well as a comparison of CDC with polling and batch, along with the real use cases that motivated it.

This episode dissects the Debezium architecture from connectors, Kafka Connect, and Kafka topics, to how Debezium reads database change logs, offset, heartbeat, and snapshot mechanisms, as well as their relationship to the schema registry and payload formats.

This episode guides you through running Kafka Connect and Debezium with Docker, registering connectors for MySQL, PostgreSQL, MongoDB, and SQL Server, arranging database connections with user privileges, then verifying the output topics and your first CDC messages.

This episode dissects the difference between the initial snapshot and change streaming, how offsets are stored and recovered on restart, snapshot chunking and initial data load management, as well as how Debezium handles database schema changes.

This episode dissects the anatomy of a Debezium event — before, after, source, op, and ts_ms — then compares the JSON, Avro, and Protobuf payload formats, integration with the schema registry for schema evolution, as well as field mapping and schema conversion best practices.

This episode covers include and exclude settings for tables and databases, routing events to different topics, topic naming and partitioning strategies, and using transforms such as RegexRouter and Filter for custom routing logic.

This episode covers monitoring connectors, offsets, and lag, reading logs, connector status, and error handling, dealing with record parsing errors, schema mismatches, and unavailable databases, then building alerts for connector failures.

This episode covers connecting CDC events to Kafka consumers and stream processors, using Kafka Streams, ksqlDB, Flink, Spark, and database sinks, streaming data to data lakes and data warehouses, plus the materialized view and analytics use cases.

This episode covers building data contracts for event schemas, managing schema versioning and compatibility rules, handling schema evolution on Debezium payloads, and using Avro and Protobuf for consumer validation.
