Copyright Debezium Authors. Licensed under the Apache License, Version 2.0.
Debezium is an open source project that provides a low latency data streaming platform for change data capture (CDC).
This repository contains a proof-of-concept for a potential future web-based UI for Debezium.
Debezium UI needs a properly running Debezium instance version 1.3.0.Beta2 or newer and a running Postgres database instance.
You can setup a running DEV infrastructure with Zookeeper, Kafka, Debezium and Postgres using docker-compose:
## optionally make sure you have the latest images:
$ docker-compose pull
Pulling dbzui-zookeeper ... done
Pulling dbzui-kafka ... done
Pulling dbzui-db-pg ... done
Pulling dbzui-connect ... done
## start containers
$ docker-compose up -d
Creating dbzui-db-pg ... done
Creating dbzui-zookeeper ... done
Creating dbzui-kafka ... done
Creating dbzui-connect ... done
## later stop containers:
$ docker-compose down
Stopping dbzui-connect ... done
Stopping dbzui-kafka ... done
Stopping dbzui-zookeeper ... done
Stopping dbzui-db-pg ... done
Removing dbzui-connect ... done
Removing dbzui-kafka ... done
Removing dbzui-zookeeper ... done
Removing dbzui-db-pg ... done
Removing network debezium-ui_dbzui-network
Kafka Connect REST API with Debezium will be available on local port 8083.
Postgres will be available on local port 65432.
Kafka will be available on local port 9092.
The entire application (UI and backend) can be built via Maven:
mvn clean install
The UI part is an SPA application based on the React framework. It is packaged as JAR, whose contents are then exposed by the Quarkus-based backend application.
The UI code for the PoC is located in the ui folder, with README instructions here to launch the UI for development.
The UI backend is a Quarkus application located under backend. You can run it in development mode like so:
mvn -pl backend compile quarkus:dev
Swagger UI can be accessed from: http://localhost:8080/swagger-ui/
The Debezium community welcomes anyone that wants to help out in any way, whether that includes reporting problems, helping with documentation, or contributing code changes to fix bugs, add tests, or implement new features. See this document for details.