> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/maxscale/maxscale-old-versions/mariadb-maxscale-23.08/mariadb-maxscale-23-08-connectors/mariadb-maxscale-2308-maxscale-cdc-connector.md).

# MaxScale 23.08 CDC Connector

The MaxScale CDC Connector for MariaDB MaxScale 23.08. A single-file C++ API that connects to the MaxScale CDC system and reads a stream of database change events row by row.

The C++ connector for the [MariaDB MaxScale](https://mariadb.com/products/technology/maxscale) [CDC system](/docs/maxscale/maxscale-old-versions/mariadb-maxscale-23.08/mariadb-maxscale-23-08-protocols/mariadb-maxscale-2308-change-data-capture-cdc-protocol.md).

### Usage

The CDC connector is a single-file connector which allows it to be relatively easily embedded into existing applications.

To start using the connector, either download it from the [MariaDB website](https://mariadb.com/downloads/mariadb-tx/connector) or [configure the MaxScale repository](/docs/server/server-management/install-and-upgrade-mariadb/mariadb-package-repository-setup-and-usage.md) and install the `maxscale-cdc-connector` package.

### API Overview

A CDC connection object is prepared by instantiating the `CDC::Connection` class. To create the actual connection, call the `CDC::Connection::connect` method of the class.

After the connection has been created, call the `CDC::Connection::read` method to get a row of data. The `CDC::Row::length` method tells how many values a row has and `CDC::Row::value` is used to access that value. The field name of a value can be extracted with the `CDC::Row::key` method and the current GTID of a row of data is retrieved with the `CDC::Row::gtid` method.

To close the connection, destroy the instantiated object.

### Examples

The source code [contains an example](https://github.com/mariadb-corporation/MaxScale/blob/23.08/connectors/cdc-connector/examples/main.cpp) that demonstrates basic usage of the MaxScale CDC Connector.

### Dependencies

The CDC connector depends on:

* OpenSSL
* [Jansson](https://github.com/akheron/jansson)

#### RHEL/CentOS 7

```
sudo yum -y install epel-release
sudo yum -y install jansson openssl-devel cmake make gcc-c++ git
```

#### Debian Stretch and Ubuntu Xenial

```
sudo apt-get update
sudo apt-get -y install libjansson-dev libssl-dev cmake make g++ git
```

#### Debian Jessie

```
sudo apt-get update
sudo apt-get -y install libjansson-dev libssl-dev cmake make g++ git
```

#### openSUSE Leap 42.3

```
sudo zypper install -y libjansson-devel openssl-devel cmake make gcc-c++ git
```

### Building and Packaging

To build and package the connector as a library, follow MaxScale build instructions with the exception of adding `-DTARGET_COMPONENT=devel` to the CMake call.

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
