Kembali ke blog
  • Integrasi Sistem

Konsumen Idempoten: Memproses Sekali, Walau Diterima Berkali

oleh Mono Solusi

Sistem pesan menjanjikan “setidaknya sekali” — yang berarti pesan bisa dikirim ulang. Konsumen yang tidak idempoten akan memproses dua kali, menggandakan efek. Idempotensi adalah tanggung jawab konsumen, bukan pengirim.

Identifikasi, lalu putuskan

Tiap pesan harus punya identitas (ID event). Konsumen mencatat ID yang sudah diproses; bila pesan dengan ID sama datang lagi, ia dilewati atau diperbarui, bukan diproses ulang dari awal.

Idempotensi bukan sekali proses

Idempotensi tidak berarti “hanya memproses sekali” — ia berarti “memproses ulang menghasilkan hasil sama”. Kadang itu artinya perbarui ke state yang sama; kadang lewati. Yang penting, efek akhir konsisten tanpa pandang berapa kali diproses.

Penyimpanan ID diproses

Catatan ID yang diproses perlu bertahan cukup lama untuk menangkap ulangan. Simpan dengan TTL atau kompak secara berkala. Tanpa catatan, konsumen tidak tahu mana yang ulangan — dan idempotensi hanyalah harapan.

Punya masalah yang ingin diselesaikan?

Ceritakan kebutuhan Anda. Kami bantu memetakan langkah teknis yang realistis — tanpa janji berlebihan.