Exactly-Once vs At-Least-Once: Janji yang Sering Disalahpahami
Klaim “exactly-once delivery” sering muncul di dokumentasi, tapi jarang benar-benar ada. Memahami apa yang mungkin dan apa yang tidak menyelamatkan tim dari arsitektur yang rapuh.
At-least-once adalah realitas
Sebagian besar sistem andal menjanjikan at-least-once: pesan akan sampai, mungkin lebih dari satu kali. Ini konsekuensi dari retry jaringan. Idempotensi konsumen menanganinya.
Exactly-once efek, bukan pengiriman
Yang bisa dicapai adalah exactly-once effect: walau pesan sampai dua kali, efeknya hanya satu kali karena konsumen idempoten. Ini yang sebenarnya Anda butuhkan.
Desain untuk idempotensi
Alih-alih mengejar pengiriman tepat satu kali (nyaris mustahil lintas jaringan), investasikan dalam konsumen idempoten. Lacak ID pesan yang sudah diproses, abaikan ulangan. Ini jalan yang jujur dan dapat diandalkan.