Episode ini membahas menyusun runbook untuk connector failure, snapshot restart, dan data replay, incident response untuk connector lag dan schema issues, backup config, offsets, dan metadata sumber, serta drill recovery dan failover testing.

Pipeline CDC akan gagal — pertanyaannya bukan "apakah", melainkan "kapan dan seberapa cepat pulih". Episode 19 ini membahas operational readiness: dokumen runbook yang berisi langkah persis saat connector gagal, prosedur memulai ulang snapshot dan data replay, strategi backup, serta drill untuk menguji rencana pemulihan.
Runbook yang baik bukan teori: dia berisi perintah konkret yang bisa dijalankan saat panik. Dengan latihan rutin, tim tidak perlu bereksperimen di tengah insiden produksi.
Langkah pertama setiap insiden adalah diagnosis. Standarkan langkah ini di runbook:
curl -s http://localhost:8083/connectors/inventory-connector/status | jq
docker logs connect --tail 100Jika connector dalam state FAILED, restart dengan aman:
curl -s -X POST http://localhost:8083/connectors/inventory-connector/restart
curl -s -X POST http://localhost:8083/connectors/inventory-connector/tasks/0/restartJangan langsung menghapus connector saat gagal — hapus dulu akar masalahnya, karena menghapus dan mendaftarkan ulang bisa memicu snapshot baru yang jauh lebih mahal.
Saat offset rusak atau data perlu dimuat ulang, kalian butuh prosedur snapshot ulang yang terkendali. Tiga skenario:
snapshot.mode: initial.Untuk menjalankan snapshot ulang tanpa menghentikan streaming yang lain, gunakan signal table seperti episode 4:
INSERT INTO inventory.debezium_signal
(id, type, data) VALUES
('replay-1', 'execute-snapshot', '{"data-collections": ["inventory.orders"]}');Sebelum memicu execute-snapshot, pastikan konsumen sudah siap menerima event op: r yang akan masuk kembali.
Dua insiden paling umum adalah lag tinggi dan schema mismatch.
Lag tinggi — langkah respons:
Lag dan log worker.max.batch.size, lalu normalisasi setelah pulih.Schema mismatch — langkah respons:
Simpan kedua prosedur ini sebagai bagian runbook sehingga siapapun di tim bisa mengeksekusinya.
Kemampuan pemulihan bergantung pada ketersediaan backup:
connect-offsets perlu di-backup agar posisi baca bisa dipulihkan.Amankan topic offset dengan mirrornya ke cluster cadangan:
docker exec -it kafka /opt/kafka/bin/kafka-mirror-maker.sh \
--consumer.config /kafka/consumer.properties \
--producer.config /kafka/producer.properties \
--whitelist connect-offsetsPerintah kafka-mirror-maker.sh --whitelist connect-offsets di atas menyalin topic offset secara berkala ke cluster cadangan, sehingga pemulihan tidak bergantung pada satu mesin.
Dokumen tanpa latihan hanyalah harapan. Jadwalkan drill berkala:
Ukur metrik penting saat drill — recovery time objective (RTO) dan data loss tolerance — lalu perbaiki runbook berdasarkan temuan. Drill yang sukses membuat tim percaya diri saat insiden nyata datang.
Sebuah runbook yang baik mencakup elemen berikut:
Simpan runbook di repository bersama konfigurasi connector, agar versinya selalu sinkron dengan kondisi pipeline terkini.
Episode 19 membawa kalian ke mode siap produksi: runbook diagnosis dan restart, prosedur snapshot restart dan replay, respons insiden untuk lag dan schema, backup config serta offset, dan drill pemulihan yang menguji rencana secara nyata.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita akan membahas real-world use cases dan patterns — sinkronisasi microservices, analytics pipeline, cache berbasis CDC, event sourcing dan audit logs, read scaling, serta arsitektur end-to-end.