Inventage Tech-RadarInventage Tech-Radar

Debezium

BackendData
Adopt

Debezium ist ein Open-Source-Projekt, das Change Data Capture (CDC) für verschiedene Datenbanken (z.B. MySQL, PostgreSQL, MongoDB, Oracle) bereitstellt. Mit CDC werden Daten-Änderungen in einer Datenbank in Echtzeit erfasst und an andere Systeme weitergeleitet. Dadurch können Integrationsprozesse zwischen Anwendungen und Datenbanken vereinfacht und automatisiert werden.

Bei Inventage setzen wir Debezium vor allem zusammen mit Kafka ein, um eine Form des Outbox Patterns zu realisieren. Die Anwendungen publizieren Nachrichten nicht direkt auf Kafka, sondern speichern diese mit den restlichen Datenbankänderungen in eine speziell konfigurierte Outbox-Tabelle. Debezium erstellt uns Kafka-Connectors, welche Änderungen auf dieser Outbox-Tabelle überwachen und in Echtzeit an die Kafka-Topics senden. Auf diese Weise wird die Integrität der Nachrichten sichergestellt, da sowohl unsere Datenänderungen als auch Kafka-Nachrichten in der gleichen Transaktion geschrieben (oder im Fehlerfall zurückgesetzt) werden.

Quarkus bietet für die Konfiguration von Debezium ein eigenes Maven Modul an. So lässt sich das Outbox Pattern in Quarkus relativ einfach konfigurieren.