Bernard Tison, Edson Yanaga
July 8, 2021

Outbox pattern with OpenShift Streams for Apache Kafka and Debezium | DevNation Tech Talk

Dual writes are a common source of issues in distributed event-driven applications. A dual write occurs when an application has to change data in two different systems - for instance, when an application needs to persist data in the database and send a Kafka message to notify other systems. If one of these two operations fail, you might end up with inconsistent data which can be hard to detect and fix.

OpenShift Streams for Apache Kafka is Red Hat's fully hosted and managed Apache Kafka service targeting development teams that want to incorporate streaming data and scalable messaging in their applications, without the burden of setting up and maintaining a Kafka cluster infrastructure. Debezium is an open source distributed platform for change data capture. Built on top of Apache Kafka, it allows applications to react to inserts, updates, and deletes in your databases.

In this session you will learn how you can leverage OpenShift Streams for Apache Kafka and Debezium to avoid the dual write issue in an event-driven application using the outbox pattern. More specifically, we will show you how to:

  • Provision a Kafka cluster on OpenShift Streams for Apache Kafka.
  • Deploy and configure Debezium to use OpenShift Streams for Apache Kafka.
  • Refactor an application to leverage Debezium and OpenShift Streams for Apache Kafka to avoid the dual write problem.