About this project

The **siddhi-io-cdc extension** is an extension to Siddhi that captures change data from databases such as MySQL, MS SQL, PostgreSQL, H2 and Oracle. It provides a `cdc` source that receives events when change events (INSERT, UPDATE, DELETE) are triggered for a database table, in key-value format. **Modes:** - **Listening mode:** The source listens to the database's change log and notifies immediately on changes. Supported for MySQL, PostgreSQL, and SQL Server. For Oracle, additional setup with Oracle Instant Client is required. - **Polling mode:** The datasource is periodically polled for changes; only INSERT and UPDATE changes can be captured. Requires a polling column (auto-increment or timestamp). **Configuration:** - Connection details (url, username, password, driverClassName) can be provided in `deployment.yaml` under the Siddhi namespace. - For PostgreSQL listening mode, configure `slot.name` (default: debezium), `plugin.name` (e.g., decoderbufs, pgoutput, wal2json), and `table.name` as `<schema>.<table>`. **Dependencies:** - JDBC connector jar must be added to the runtime, based on the database type (refer to Debezium documentation). - Database-specific setup is required for listening mode (e.g., MySQL, PostgreSQL, SQL Server). **Installation:** - Follow Siddhi documentation for adding extensions to various execution environments. **Testing:** - Integration tests can be run in Docker containers for H2, MySQL 5.7, PostgreSQL 9.6, MSSQL, and Oracle 11.2.0.2-xe using Maven profiles. **Support:** - Questions via StackOverflow with `siddhi` tag; issues on GitHub; community info on Siddhi website.