Belajar Debezium - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Debezium - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Debezium, kalian perlu menguasai konsep database relasional, transaction log, streaming data, dan Apache Kafka. Di episode ini kalian menyiapkan environment Docker, menjalankan Kafka dengan mode KRaft dan Kafka Connect, lalu memverifikasi runtime Debezium pertama.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Selamat datang di series Belajar Debezium! Series ini akan membawa kalian menguasai Debezium — open-source distributed platform untuk change data capture (CDC) — dari fondasi konsep sampai production readiness. Total ada 23 episode yang tersusun dari enam fase.

Tapi sebelum menyentuh image debezium/connect, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena Debezium bukan sekadar alat baca log database. Dia adalah source connector yang hidup di dalam Kafka Connect, jadi pemahaman tentang Kafka, Kafka Connect, serialisasi data, dan cara database merekam perubahannya adalah syarat mutlak untuk mengikuti series ini.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan environment dengan Docker, menjalankan Kafka dalam mode KRaft, menyalakan Kafka Connect beserta Debezium runtime, dan melakukan verifikasi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dikuasai

Database Relasional dan Transaction Log

Debezium bekerja dengan menangkap perubahan yang direkam database ke dalam transaction log internal. Setiap database punya caranya sendiri: MySQL menulis binlog, PostgreSQL memakai WAL (write-ahead log), MongoDB menyimpan oplog dan change streams, sedangkan SQL Server punya mekanisme change data capture. Kalian wajib paham konsep tabel, primary key, transaksi, dan bagaimana log ini bekerja, karena seluruh mekanisme CDC bergantung padanya.

Streaming Data dan Event-Driven Architecture

CDC menghasilkan event stream: aliran peristiwa yang merepresentasikan perubahan data. Pahami istilah dasar streaming — event, stream, producer, dan consumer — serta prinsip event-driven architecture di mana sistem saling terhubung lewat event, bukan lewat panggilan langsung antar layanan. Tanpa fondasi ini, kalian akan kesulitan memahami alasan Debezium memproduksi event ke Kafka.

Apache Kafka dan Kafka Connect

Kafka adalah penyimpanan event yang menjadi otak pipeline CDC. Wajib dikuasai:

  • Topics dan partitions: event dikelompokkan dalam topic yang bisa dipecah menjadi beberapa partisi untuk skala.
  • Offsets: penanda posisi baca konsumen di dalam partisi.
  • Consumer groups: sekumpulan konsumen yang membagi pekerjaan membaca topic.
  • Kafka Connect: framework untuk menjembatani data antara Kafka dan sistem lain, tempat Debezium duduk sebagai source connector.

Pahami bahwa Kafka Connect mengabstraksi urusan koneksi dan konfigurasi konektor: kalian cukup mendaftarkan konfigurasi connector, dan worker yang menjalankannya. Detail lifecycle-nya akan kita bedah di episode 3 dan 11.

Serialisasi dan Schema Registry

Event di Kafka disimpan sebagai byte array, sehingga format serialisasi menentukan bagaimana event bisa dikonsumsi. Kenali tiga format utama yang akan dipakai Debezium: JSON, Avro, dan Protobuf. Ketiganya bisa dipasangkan dengan schema registry — Confluent Schema Registry atau Apicurio — untuk mengelola struktur data secara terpusat. Detail format ini akan kita bedah di episode 5 dan 9.

Perangkat Lunak yang Perlu Disiapkan

Docker dan Docker Compose

Cara tercepat menjalankan seluruh stack adalah Docker. Verifikasi instalasi kalian:

Verifikasi Docker
docker --version
docker compose version

Kedua perintah di atas harus menghasilkan output versi tanpa error. Docker Compose akan dipakai untuk menyalakan Kafka, Kafka Connect, dan database sumber secara bersamaan.

Kafka dengan Mode KRaft

Sejak Kafka 3.x, Zookeeper tidak lagi diperlukan — Kafka bisa berjalan dalam mode KRaft di mana broker merangkap sebagai controller cluster. Ini menyederhanakan setup secara signifikan. Kita akan memakai image apache/kafka yang sudah mendukung KRaft out of the box, tanpa memikirkan cluster Zookeeper terpisah.

Kafka Connect dan Debezium Runtime

Debezium menyediakan image resmi quay.io/debezium/connect yang membungkus Kafka Connect worker lengkap dengan semua connector Debezium di dalam direktori plugin. Image inilah yang akan menjadi pekerja utama sepanjang series:

docker-compose.yml
services:
  kafka:
    image: apache/kafka:3.9.0
    ports:
      - "9092:9092"
    environment:
      KAFKA_NODE_ID: 1
      KAFKA_PROCESS_ROLES: broker,controller
      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  connect:
    image: quay.io/debezium/connect:3.0
    ports:
      - "8083:8083"
    depends_on:
      - kafka
    environment:
      BOOTSTRAP_SERVERS: kafka:9092
      GROUP_ID: 1
      CONFIG_STORAGE_TOPIC: connect-configs
      OFFSET_STORAGE_TOPIC: connect-offsets
      STATUS_STORAGE_TOPIC: connect-status

Catatan penting: nilai BOOTSTRAP_SERVERS: kafka:9092 memakai nama service di dalam jaringan Docker. Kafka Connect berkomunikasi dengan broker melalui jaringan internal tersebut, sedangkan port 8083 di-expose untuk akses REST dari host.

Sumber Database dan Schema Registry

Untuk observasi perubahan, kalian butuh database sumber. Sepanjang series kita akan memakai MySQL dan PostgreSQL sebagai contoh utama, dan menyinggung MongoDB serta SQL Server di episode 3. Siapkan juga Schema Registry — Apicurio atau Confluent — yang bersifat opsional di awal, tapi wajib saat kita memakai format Avro dan Protobuf di episode 5 dan 9.

Hardware Minimum Requirements

Stack ini berjalan sebagai beberapa container sekaligus: Kafka broker, Kafka Connect worker, database sumber, dan nanti schema registry. Rekomendasi minimum untuk environment lokal:

  • RAM 8GB atau lebih, karena JVM Kafka dan Connect cukup boros memori.
  • CPU quad-core agar broker, worker, dan database tidak saling berebut.
  • Storage 20GB+ untuk image Docker, log Kafka, dan data database.

Jika mesin kalian di bawah spesifikasi ini, kurangi jumlah container yang jalan bersamaan atau gunakan layanan cloud sementara untuk Kafka.

Verifikasi Environment

Jalankan stack dan verifikasi bahwa Kafka Connect sudah merespons:

Verifikasi runtime
docker compose up -d
sleep 15
curl -s http://localhost:8083/connectors

Perintah curl -s http://localhost:8083/connectors akan mengembalikan [] — daftar connector yang masih kosong. Itu pertanda sehat. Selanjutnya pastikan plugin Debezium terbaca oleh worker:

Daftar plugin yang tersedia
curl -s http://localhost:8083/connector-plugins

Di antara daftar tersebut kalian akan melihat kelas seperti io.debezium.connector.mysql.MySqlConnector dan io.debezium.connector.postgresql.PostgresConnector. Kehadiran kelas-kelas ini menandakan Debezium runtime siap dipakai.

Info

Selalu jalankan Kafka Connect dalam network yang sama dengan broker. Kesalahan paling umum di awal adalah worker yang tidak bisa menjangkau broker karena BOOTSTRAP_SERVERS menunjuk alamat yang salah.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami konsep transaction log dan CDC, streaming data, Kafka serta Kafka Connect, menyiapkan environment Docker dengan Kafka mode KRaft, menyalakan Debezium runtime, dan memverifikasi plugin yang tersedia.

Inti yang harus dibawa pulang:

  • CDC bekerja dengan membaca transaction log database, bukan dengan polling.
  • Debezium adalah source connector di dalam Kafka Connect yang memproduksi event ke Kafka.
  • Kafka 3.x berjalan tanpa Zookeeper menggunakan mode KRaft.
  • Image quay.io/debezium/connect membungkus worker dan semua plugin Debezium.
  • Verifikasi pertama: curl localhost:8083/connectors harus mengembalikan daftar kosong.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa CDC — dari evolusi batch ETL menuju event streaming, lahirnya Debezium dari Red Hat hingga menjadi proyek Apache, serta use case nyata seperti database replication, analytics, dan auditing. Pastikan environment kalian sudah siap, karena perjalanan Belajar Debezium baru saja dimulai!

Belajar Debezium - Pre-Requisites Skill & Setup Environment | Belajar Debezium