Open-source platform to build, operate, and monitor Change Data Capture pipelines.
Python
0
16 commits
updated Oct 9, 2026
ClueCDC is an open-source control plane for building, managing, and monitoring CDC pipelines powered by Debezium, Apache Kafka, and Kafka Connect.
It gives operators one UI and API for connections, table discovery, connector lifecycle, deliveries, health, alerts, and audit history. ClueCDC configures the data plane; CDC records never flow through its API.
flowchart LR
Source[(Source)] --> Debezium[Debezium source connector]
Debezium --> Kafka[(Apache Kafka)]
Kafka --> Delivery[Kafka Connect delivery connector]
Delivery --> Destination[(Destination)]
ClueCDC[ClueCDC control plane] -. configures and observes .-> Debezium
ClueCDC -. configures and observes .-> Kafka
ClueCDC -. configures and observes .-> Delivery
Debezium and delivery connectors run in Kafka Connect. The local stack uses one worker; production may isolate or scale worker clusters independently.
ClueCDC deliberately does not relay CDC payloads through its API. Topic screens show broker metadata; inspect records directly in Kafka or the configured destination. See the current feature matrix for detailed capabilities, role access, and known boundaries.
| System | Source | Destination | Delivery format |
|---|---|---|---|
| PostgreSQL 13+ | Debezium | JDBC sink | Typed rows/upserts/deletes |
| MySQL 8 | Debezium | JDBC sink | Typed rows/upserts/deletes |
| AWS S3 | No | Aiven S3 sink | Gzip JSONL CDC envelopes |
| MinIO | No | Aiven S3 sink | Gzip JSONL CDC envelopes |
Requirements: Git, Docker Engine or Docker Desktop, and Docker Compose v2. The default stack needs enough memory for PostgreSQL, Kafka, Kafka Connect, the API, worker, and web UI.
git clone https://github.com/cluedata/cluecdc.git
cd cluecdc
cp .env.example .env
python scripts/bootstrap.py
docker compose up -d --build --wait
Open http://localhost:3000/login. The API reference is at http://localhost:8000/docs.
The development stack creates this public demo account automatically:
Email: admin@cluecdc.local
Password: cluecdc-admin
Do not expose this account to a network or reuse its metadata database in
production. Production rejects BOOTSTRAP_DEFAULT_ADMIN=true; disable it and
create the first administrator interactively with python -m app.cli create-admin.
The bootstrap command replaces infrastructure and cryptographic examples with unique local secrets without overwriting custom values. It deliberately keeps the public development login shown above so a fresh local stack is accessible.
Configuration is documented in .env.example and the operations guide. Critical secrets are required, and production mode rejects non-session authentication and example keys. See authentication and user management.
The default Compose stack contains only runtime services. Development inspection
tools use compose.dev.yaml; PostgreSQL/MySQL/MinIO integration fixtures use
compose.test.yaml. See the Compose guide,
production considerations, and
Kubernetes baseline.
Full documentation is at https://cluedata.github.io/cluecdc/ and in docs. Start with the architecture and first pipeline.
Use Node.js 24 and Python 3.12.
npm ci
python -m pip install -e "apps/api[dev]"
npm run verify
python -m ruff check apps/api scripts
python -m mypy --config-file apps/api/pyproject.toml apps/api/app
mkdocs build --strict
Run python scripts/release-check.py --allow-dirty for the complete local
release gate. It validates and builds but never tags, publishes, or pushes.
Priorities before v1.0.0 are production identity/SSO, TLS and external-secret
integration, broader Kafka security support, HA deployment guidance, and more
connector coverage. Planned work is not presented as current functionality.
Read CONTRIBUTING.md before proposing changes. Report vulnerabilities privately according to SECURITY.md. Releases use Semantic Versioning and are recorded in CHANGELOG.md.
ClueCDC is licensed under the Apache License 2.0; see NOTICE for bundled attribution.
If ClueCDC is useful to you, you can support its continued development at Buy Me a Coffee.
Open-source platform to build, operate, and monitor Change Data Capture pipelines.
Python
0
16 commits
updated Oct 9, 2026
ClueCDC is an open-source control plane for building, managing, and monitoring CDC pipelines powered by Debezium, Apache Kafka, and Kafka Connect.
It gives operators one UI and API for connections, table discovery, connector lifecycle, deliveries, health, alerts, and audit history. ClueCDC configures the data plane; CDC records never flow through its API.
flowchart LR
Source[(Source)] --> Debezium[Debezium source connector]
Debezium --> Kafka[(Apache Kafka)]
Kafka --> Delivery[Kafka Connect delivery connector]
Delivery --> Destination[(Destination)]
ClueCDC[ClueCDC control plane] -. configures and observes .-> Debezium
ClueCDC -. configures and observes .-> Kafka
ClueCDC -. configures and observes .-> Delivery
Debezium and delivery connectors run in Kafka Connect. The local stack uses one worker; production may isolate or scale worker clusters independently.
ClueCDC deliberately does not relay CDC payloads through its API. Topic screens show broker metadata; inspect records directly in Kafka or the configured destination. See the current feature matrix for detailed capabilities, role access, and known boundaries.
| System | Source | Destination | Delivery format |
|---|---|---|---|
| PostgreSQL 13+ | Debezium | JDBC sink | Typed rows/upserts/deletes |
| MySQL 8 | Debezium | JDBC sink | Typed rows/upserts/deletes |
| AWS S3 | No | Aiven S3 sink | Gzip JSONL CDC envelopes |
| MinIO | No | Aiven S3 sink | Gzip JSONL CDC envelopes |
Requirements: Git, Docker Engine or Docker Desktop, and Docker Compose v2. The default stack needs enough memory for PostgreSQL, Kafka, Kafka Connect, the API, worker, and web UI.
git clone https://github.com/cluedata/cluecdc.git
cd cluecdc
cp .env.example .env
python scripts/bootstrap.py
docker compose up -d --build --wait
Open http://localhost:3000/login. The API reference is at http://localhost:8000/docs.
The development stack creates this public demo account automatically:
Email: admin@cluecdc.local
Password: cluecdc-admin
Do not expose this account to a network or reuse its metadata database in
production. Production rejects BOOTSTRAP_DEFAULT_ADMIN=true; disable it and
create the first administrator interactively with python -m app.cli create-admin.
The bootstrap command replaces infrastructure and cryptographic examples with unique local secrets without overwriting custom values. It deliberately keeps the public development login shown above so a fresh local stack is accessible.
Configuration is documented in .env.example and the operations guide. Critical secrets are required, and production mode rejects non-session authentication and example keys. See authentication and user management.
The default Compose stack contains only runtime services. Development inspection
tools use compose.dev.yaml; PostgreSQL/MySQL/MinIO integration fixtures use
compose.test.yaml. See the Compose guide,
production considerations, and
Kubernetes baseline.
Full documentation is at https://cluedata.github.io/cluecdc/ and in docs. Start with the architecture and first pipeline.
Use Node.js 24 and Python 3.12.
npm ci
python -m pip install -e "apps/api[dev]"
npm run verify
python -m ruff check apps/api scripts
python -m mypy --config-file apps/api/pyproject.toml apps/api/app
mkdocs build --strict
Run python scripts/release-check.py --allow-dirty for the complete local
release gate. It validates and builds but never tags, publishes, or pushes.
Priorities before v1.0.0 are production identity/SSO, TLS and external-secret
integration, broader Kafka security support, HA deployment guidance, and more
connector coverage. Planned work is not presented as current functionality.
Read CONTRIBUTING.md before proposing changes. Report vulnerabilities privately according to SECURITY.md. Releases use Semantic Versioning and are recorded in CHANGELOG.md.
ClueCDC is licensed under the Apache License 2.0; see NOTICE for bundled attribution.
If ClueCDC is useful to you, you can support its continued development at Buy Me a Coffee.