Change data capture (CDC) is a software process that tracks changes in a database so an application or user can take action on them later. It identifies and publishes each database event as messages to a real-time stream, which downstream systems can consume for various purposes such as analytics, synchronization, and data replication. There are two broad categories of CDC processing: pull-based and push-based. Pull-based systems involve polling the source system for changes, while push-based systems broadcast messages to target systems in real time. However, these techniques have their own set of benefits and drawbacks, including introducing delays or guaranteeing message delivery. Change data capture offers many benefits to both developers and business users, such as actionable individual database changes, reduced need for ETL operations, and improved decision-making. It has various use cases, including analytics, replication, compliance, cache invalidation, microservices integration, and event streaming. The implementation of CDC can be done in several forms, including snapshot tracking, timestamp or key-based tracking, table differencing, triggers, log-based data replication, and event streaming.