Outbox vs CDC: Dua Jalur dari Database ke Event
Mengirim event setelah menyimpan data terdengar sederhana, tapi pecah di tengah: database berhasil, event gagal — atau sebaliknya. Outbox pattern dan CDC menyelesaikan masalah ini, masing-masing dengan pendekatan berbeda.
Outbox: tabel penyangga
Outbox menulis event ke tabel penyangga dalam transaksi yang sama dengan data. Penerbit terpisah membaca tabel dan mengirim, lalu menandai terkirim. Event tidak hilang selama transaksi data berhasil.
CDC: arus perubahan
CDC (Change Data Capture) membaca log transaksi database dan menerbitkan perubahan sebagai event. Tanpa tabel penyangga — perubahan database langsung jadi event. Lebih hemat, tapi mengikat pada log database.
Pilih sesuai kebutuhan
Outbox memberi kendali format event (Anda menulisnya), tapi menambah tabel dan penerbit. CDC hemat tapi event mencerminkan perubahan fisik, bukan domain. Bila event adalah kontrak domain, outbox lebih cocok; bila cukup mereplikasi data, CDC memadai.