Change-Data-Capture-Implementierung: Debezium in Version 1.0 erschienen

Nach über vier Jahren Entwicklung lassen seine Entwickler das Open-Source-Projekt Debezium auf die Version 1.0 springen.

In Pocket speichern vorlesen Druckansicht
Change-Data-Capture-Implementierung: Debezium in Version 1.0 erschienen

(Bild: ronstik/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Alexander Neumann

Debezium, eine Open-Source-Implementierung des CDC-Patterns (Change Data Capture), ist letzte Woche in Version 1.0 erschienen. Sie basiert auf Kafka Connect, einem Framework zur Implementierung und Ausführung von Konnektoren für Apache Kafka, einem auf die Echtzeitverarbeitung großer Datenmengen ausgelegten Message Broker. Debezium kümmert sich aber auch um Dinge wie Fehlertoleranz: Stürzt etwa ein Konnektor ab oder muss er einfach aufgrund eines Updates neu gestartet werden, gehen keine Change-Events verloren, sondern das Log wird einfach ab der zuletzt verarbeiten Position weitergelesen.

CDC ist ein zunehmend im Zuge von Microservice-Architekturen hervorgetretenes Pattern zum Datenaustausch zwischen verschiedenen Datenquellen. Gunnar Morling, einer der Entwickler von Debezium beschreibt CDC im Interview mit heise-Developer-Blogger Thorben Janssen wie folgt: "Wenn immer sich in einer Datenbank etwas ändert, also zum Beispiel ein Kunde angelegt, ein Auftrag aktualisiert oder eine Lieferung gelöscht wird, wird diese Änderung erfasst und als Event an interessierte Consumer verteilt. Diese Events beschreiben alten und neuen Zustand des betroffenen Datensatzes sowie Metadaten wie den Zeitstempel der Änderung, Transaktions-ID und einiges andere mehr. Im Sinne einer losen Kopplung werden die Change Events dabei typischerweise asynchron über Message Broker wie Apache Kafka an die Konsumenten übertragen."

Speziell zu Microservices bedeutet das laut Morling, dass Change Data Capture genutzt werden kann, "um Datenänderungen zwischen verschiedenen Services zu propagieren. Services können dann beispielsweise eine Kopie der Daten anderer Services in ihrer eigenen lokalen Datenbank anlegen, wodurch synchrone Aufrufe zwischen den Services vermieden werden können".

Debezium lässt sich als Bibliothek in beliebigen Java-Applikationen nutzen und unterstützt Datenbanken wie MySQL, PostgreSQL, SQL Server und MongoDB. Die Unterstützung weiterer wie Oracle und Apache Cassandra sind in Arbeit. Der Fokus bei der Version 1.0 lag im Wesentlichen auf Vereinheitlichungen bezüglich der Konfigurationsoptionen der Konnektoren und dem Ausbau der automatisierten Test-Suite, um die Stabilität der Konnektoren zu verbessern. Ansonsten bedeutet der Sprung auf die Version 1.0, dass das 2015 gestartete Projekt nun einen ausreichenden Reifegrad erreicht, der es für auch für Produktivszenarien empfiehlt.

Neben dem unten verlinkten Interview finden sich weitere Informationen zu Debezium und zur Veröffentlichung der Version 1.0 in der Blog-Ankündigung.

Siehe dazu auf heise Developer:

(ane)