Episode ini membahas menelusuri perubahan database dan merekonstruksi event stream, membangun audit trail untuk operasi CRUD dan schema change, observability dengan metrics, logs, dan tracing, serta data quality checks dan validation pipeline.

Jika kalian diminta menjawab pertanyaan "siapa yang mengubah baris ini, kapan, dan nilainya jadi apa", apakah pipeline kalian mampu menjawabnya? Episode 13 ini membahas auditability — kemampuan menelusuri dan merekonstruksi riwayat perubahan — dan data observability — kemampuan melihat kondisi kesehatan data yang mengalir.
Kabar baiknya, Debezium sudah menyediakan bahan baku: setiap perubahan disimpan sebagai event append-only dengan nilai before dan after. Tugas kalian adalah membangun proses yang bisa memanfaatkan bahan itu untuk audit, rekonstruksi, dan quality control.
Karena event bersifat append-only, riwayat lengkap bisa direkonstruksi kapan saja. Untuk menelusuri satu baris tertentu, pakai key baris dan baca seluruh riwayatnya:
docker exec -it kafka /opt/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic dbserver1.inventory.customers \
--from-beginning \
--property print.key=true \
--property print.partition=trueKarena primary key menjadi message key, semua perubahan pada baris yang sama berada di satu partisi dan berurutan. Dari urutan tersebut kalian bisa merekonstruksi nilai baris di titik waktu mana pun — ini adalah bentuk time travel yang tidak dimiliki snapshot biasa.
Audit trail yang baik mencatat bukan hanya data, tetapi juga operasi dan konteksnya. Event Debezium sudah memuat keduanya: op memberi jenis operasi, source memberi asal, dan before/after memberi nilai lama dan baru.
Tambahkan skema waktu transaksi dan metadata user jika database mendukungnya:
{
"provide.transaction.metadata": "true",
"include.schema.changes": "true"
}Dengan provide.transaction.metadata: "true", Debezium menerbitkan event transaksi yang mengaitkan beberapa operasi dalam satu transaksi database. Event schema change dari include.schema.changes melengkapi trail dengan riwayat struktur tabel — siapa yang menambah kolom dan kapan.
Observability menggabungkan tiga sinyal: metrics, logs, dan traces.
Contoh properti log worker yang terstruktur:
LOG_LEVEL: INFOUntuk tracing, hubungkan worker dengan OpenTelemetry agent dan ekspor span ke backend observability. Dengan begitu, saat event lambat diproses, kalian bisa melihat di mana waktu terbuang — di snapshot, di transfer jaringan, atau di konsumen.
Data yang masuk harus divalidasi sebelum dianggap aman. Bangun pipeline quality check yang mengonsumsi event CDC dan memverifikasi:
ts_ms dan posisi source selalu naik, mendeteksi event duplikat atau out-of-order.Contoh aturan kualitas sederhana dengan ksqlDB:
CREATE STREAM bad_events AS
SELECT * FROM customers_stream
WHERE email IS NULL OR email LIKE '%example.invalid%'
EMIT CHANGES;Stream bad_events di atas menampung event yang melanggar aturan, lalu bisa diarahkan ke DLQ atau alert. Data quality check yang rutin membuat masalah terdeteksi sebelum menyebar ke konsumen hilir.
Agar audit trail tidak tercampur dengan traffic operasional yang tinggi, banyak tim merutekan event yang akan di-audit ke topic khusus. Ini bisa dicapai dengan transform routing dari episode 6, sehingga event menuju topic audit tetap lengkap sementara topic asli dipakai untuk sinkronisasi biasa.
{
"transforms": "auditRoute",
"transforms.auditRoute.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.auditRoute.regex": "(.*)",
"transforms.auditRoute.replacement": "$1-audit"
}Dengan pola $1-audit, setiap topic asli mendapat pasangan topic audit. Pasangan ini bisa dipelihara dengan retensi panjang atau disinkronkan ke object storage sebagai arsip kepatuhan.
Beberapa metrik Debezium yang paling penting untuk observability:
Gabungkan metrik ini dengan log dan trace untuk mendapatkan gambaran utuh perjalanan satu event dari database hingga konsumen.
Episode 13 mengubah pipeline menjadi sistem yang bisa dipertanggungjawabkan: riwayat perubahan bisa direkonstruksi dari event append-only, audit trail mencakup CRUD dan schema change, observability memantau health dari tiga sinyal, dan quality check menyaring data sebelum menyebar.
Inti yang harus dibawa pulang:
op dan before/after adalah bahan baku audit trail yang lengkap.provide.transaction.metadata menghubungkan operasi dalam satu transaksi.Di episode 14 selanjutnya kita akan membahas cross-region dan hybrid topologies — replikasi data antar region dengan Debezium, arsitektur hybrid cloud dan hybrid database, pertimbangan latency dan topologi jaringan, serta data sovereignty.