Berkenalan dengan Debezium

RZLWLDN
TLabCircle
Published in
3 min readMay 25, 2022
Photo by Aman Pal on Unsplash

Change Data Capture

Aplikasi saat ini terkadang membutuhkan database replika, indeks pencarian untuk melakukan operasi pencarian, penyimpanan cache untuk mempercepat pembacaan data, dan data warehouse untuk analisis kompleks pada data.

Kebutuhan untuk mendukung model data dan pola akses data yang berbeda menghadirkan masalah umum yang harus dipecahkan oleh sebagian besar pengembang web perangkat lunak, dan saat itulah Change Data Capture (CDC) datang untuk menyelamatkan!

Pada artikel ini, kita akan mulai dengan gambaran singkat tentang CDC, dan kita akan fokus pada Debezium, platform yang biasa digunakan untuk CDC.

Apa Itu Change Data Capture

Change Data Capture (CDC) adalah teknik dan design pattern. Sering digunakan untuk mereplikasi data antar database secara real-time.

Kita juga dapat melacak perubahan data yang ditulis ke database sumber dan secara otomatis mensinkronkan ke database target. CDC memungkinkan pemuatan tambahan dan menghilangkan kebutuhan untuk pembaruan beban massal.

Change data capture offers some advantages:

  1. Melacak perubahan dalam database secara real-time.
  2. Update data pada database target secara instan.
  3. Menggunakan stream processing untuk menjamin perubahan instan.

Ada berbagai kasus penggunaan yang dapat diselesaikan oleh CDC, seperti replikasi data, memperbarui atau menghapus cache, memperbarui indeks pencarian, sinkronisasi data di microservice, dan banyak lagi.

Debezium Platform

Debezium adalah platform sumber terbuka untuk CDC yang dibangun di atas Apache Kafka. Penggunaan utamanya adalah untuk merekam semua perubahan tingkat baris yang dilakukan untuk setiap tabel database dalam log transaksi.

Debezium menyediakan berbagai source konektor, mendukung banyak database seperti MySQL, MongoDB, PostgreSQL, dan lainnya.

Konektor ini dapat memantau dan merekam perubahan database dan mempublikasikannya ke layanan streaming seperti Kafka.

Selain itu, Debezium tetap memonitor bahkan jika aplikasi kita sedang down. Setelah restart, konektor akan mulai mengkonsumsi message yang belum di subscribe.

Debezium Architecture

Deploy debezium tergantung dengan infrastruktur yang kita gunakan, tapi pada umumnya kita sering menggunakan Apache Kafka Connect.

Kafka Connect adalah framework yang beroperasi sebagai layanan terpisah di sisi broker Kafka. Kita menggunakannya untuk streaming data antara Apache Kafka dan sistem lain.

Diagram di bawah ini menunjukkan bagian yang berbeda dari CDC pipeline berdasarkan Debezium:

Debezium Architecture

Pada gambar sisi kiri, kita punya MySQL database yang ingin kita salin ke database target seperti PostgreSQL, MongoDB dll.

Kedua, konektor Kafka Connect mem-parsing dan menafsirkan log transaksi dan menulisnya ke topik Kafka. Selanjutnya, Kafka bertindak sebagai perantara pesan untuk mentransfer set perubahan ke sistem target.

Kemudian, di sebelah kanan, kita memiliki konektor pulling Kafka dan men-deliver-kan perubahan ke database target. Debezium menggunakan Kafka dalam arsitekturnya, tetapi juga menawarkan metode penerapan lain untuk memenuhi kebutuhan infrastruktur kita.

Kesimpulan

Dalam artikel ini, kita dapat melihat manfaat CDC dan masalah apa yang dapat dipecahkannya. Kita juga melihat Debezium sebagai platform opensource luar biasa yang dapat mempermudah kita menyelesaikan berbagai use cases CDC.

--

--