From 5ab5898b5eb46860be9c10fa6600bac98e275c36 Mon Sep 17 00:00:00 2001 From: Jose Carvajal Hilario Date: Wed, 11 Dec 2024 09:13:36 +0100 Subject: [PATCH] DBZ-2535: List all examples in root README.md Comprehensive list of all the examples that are part of the debezium examples repository. Added a pull request template, so when new examples arrive, we remember to update the list. --- .github/PULL_REQUEST_TEMPLATE.md | 10 ++++++++ README.md | 44 +++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..3c6646c9 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,10 @@ +## Description + + +## Checklist + +- [ ] If the changes include a new example, I added it to the list of examples in the [README.md](https://github.com/debezium/debezium-examples/blob/main/README.md) file \ No newline at end of file diff --git a/README.md b/README.md index ac58b569..17af12fd 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,49 @@ Copyright Debezium Authors. Licensed under the [Apache License, Version 2.0](htt This repository contains multiple examples for using Debezium, e.g. configuration files, Docker Compose files, OpenShift templates. - ## Getting Started For getting started please check the [tutorial example](./tutorial). + +## Examples + +* [Apache Pulsar](./apache-pulsar): Streaming **Postgres** database changes to **Apache Pulsar** +* [Audit Logs](./auditlog): Building Audit Logs with Change Data Capture +* [Cache Invalidation](./cache-invalidation): How Debezium can be used to invalidate items in the JPA 2nd level cache after external data changes +* [Camel - pipelines](./camel-component): Building an Apache Camel pipeline that captures **Postgres** database changes +* [Camel - Kafka Connect](./camel-kafka-connect): How to use the Camel Kafka Connect component with Debezium +* [Cloud Events](./cloudevents): How to use cloud events defined in Json with Debezium +* [Database Activity Monitoring](./db-activity-monitoring): How to use Debezium for comprehensive database activity logging and analysis +* [Debezium - End-to-end demo](./end-to-end-demo): End-to-end demo using MySQL as database and Kafka Connect +* [Debezium - Failover](./failover): How Debezium recovers after a database failure +* [Debezium - Monitoring](./monitoring): Monitoring a Debezium instance +* [Debezium - Auto-Creation of Topics](./topic-auto-create): Auto-creating Debezium change data topics +* [Debezium - Outbox Pattern](./outbox): Implement the "outbox pattern", an approach for letting services communicate in an asynchronous and reliable fashion +* [Debezium - Saga Pattern](./saga): How to implement the [Saga pattern](https://microservices.io/patterns/data/saga.html) for realizing distributed transactions across multiple microservices +* [Debezium - Testing](./testcontainers): How to implement an integration test for your CDC set-up using [Testcontainers](https://www.testcontainers.org/) +* [Debezium - User Interface](./ui-demo): How to deploy Debezium UI +* [Debezium Server - Using Google Cloud Pub/Sub](./debezium-server/debezium-server-sink-pubsub): How to deploy [Debezium Server](https://debezium.io/documentation/reference/stable/operations/debezium-server.html) using Postgres, MongoDB, and MySQL as data sources and [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/docs) as a destination +* [Debezium Server - Using storage for offset and schema history](./debezium-server/debezium-server-mysql-redis-pubsub): How to deploy [Debezium Server](https://debezium.io/documentation/reference/stable/operations/debezium-server.html) using MySQL as data sources, Redis and storage for offset and schema history, and [Google Cloud Pub/Sub emulator](https://cloud.google.com/pubsub/docs) as a destination +* [Debezium Server - Using custom topic naming policy](./debezium-server-name-mapper): How to deploy [Debezium Server](https://debezium.io/documentation/reference/stable/operations/debezium-server.html) using a custom topic naming policy +* [Debezium Server - Operator - Using Kafka](./operator/tutorial-postgresql-kafka): How to stream changes from a PostgreSQL database into Apache Kafka with Debezium Server deployed in a Kubernetes cluster +* [Debezium Server - Operator - Using Kafka](./operator/tutorial-pubsub): How to stream changes from a PostgreSQL database into [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/docs) with Debezium Server deployed in a Kubernetes cluster +* [Graphql](./graphql): How to build a GraphQL Subscription on top of Debezium Change Events +* [HTTP Signaling and Notification](./http-signaling-notification): How to create custom signaling and notification channels for Debezium connectors +* [Infinispan - Standalone](./infinispan-standalone): How to use a standalone **Infinispan** cluster that will be used for buffering in-progress transactions by the Debezium Oracle connector +* [Infinispan - Distributed Caching](./distributed-caching): How to combine Debezium and **Infinispan** for an CQRS-style application design +* [JPA Aggregations](./jpa-aggregations): How to materialize consistent aggregates using a PoC-level Hibernate ORM extension +* [Using multiple databases](./engine-wasm): How to capture and stream change events from multiple databases such as MySQL and PostgreSQL +* [JSON Logging](./json-logging): This example uses **Logstash** json_event pattern for log4j +* [Kafka KStreams - Using Kafka Connect MongoDB](./kstreams): How to use kstreams topologies and the [Kafka Connect MongoDB sink connector](https://github.com/hpgrahsl/kafka-connect-mongodb) +* [Kafka KStreams - Foreign Key Joins](./kstreams-fk-join): How two Debezium change data topics can be joined via Kafka Streams +* [Kafka KStreams - WebSockets](./kstreams-live-update): How to use KStreams and stream the merged events to a client using WebSockets +* [Machine Learning - TensorFlow](./machine-learning/tensorflow-mnist): Image classification with Debezium and TensorFlow +* [Machine Learning - K-means](./machine-learning/tensorflow-mnist): Iris classification using streaming k-means and **Apache Flink** +* [Kinesis](./kinesis): How to stream changes from MySQL database running on a local machine to an Amazon [Kinesis](https://aws.amazon.com/kinesis/data-streams/) stream +* [KSQL](./ksql): Querying Debezium change data events with KSQL +* [Postgres - Failover slots](./postgres-failover-slots): How to use Postgres 17 failover replication slots with Debezium +* [Postgres - Kafka signal](./postgres-kafka-signal): How to stream data into the signal topic +* [Postgres - TOAST Column Values](./postgres-toast): Dealing With Postgres TOAST Column Values +* [SQL Server - Replication](./sql-server-read-replica): How to deploy the topology of services to stream from SQL Server read-only replica +* [MongoDB - Streaming to PostgresSQL](./unwrap-mongodb-smt): How to capture events from a MongoDB database and stream them to a PostgresSQL database +* [MySQL - Streaming to PostgresSQL](./unwrap-smt): How to capture events from a MySQL database and stream them to a PostgresSQL database \ No newline at end of file