ivo@setyadi:~$ ivo.blogspot.com

# catatan teknis, sejak 2001

Outbox: Ketika Tabel Database Menggantikan Message Queue & Redis

Banyak aplikasi akhirnya harus melakukan dua hal sekaligus: menyimpan data dan memberi tahu sistem lain soal itu . Pasien daftar → simpan kunjungan dan kirim laporan ke API kesehatan. Pembayaran lunas → catat transaksi dan dorong event ke sistem lain. Cara naif-nya disebut "dual write": tulis ke database, lalu kirim ke message queue. Nah, celah di antara dua langkah itulah tempat data diam-diam hilang. Pola outbox menutup celah tersebut — dan untuk banyak sistem, artinya kamu tak butuh RabbitMQ, Kafka, atau Redis sama sekali. Masalah "dual write" simpanKunjungan(kunjungan) // sudah commit ke Postgres kirimKeQueue(event) // ...jaringan ngadat di sini Kalau proses crash di antara dua baris itu, atau queue sempat detik tak terjangkau, kamu dapat kunjungan tanpa event. Dibalik urutannya? Bisa dapat event untuk kunjungan yang tak pernah tersimpan. Tak ada transaksi yang membentang dari "database saya" ke "broker milik orang lain...