Klien dapat kehilangan respons setelah server menerapkan perubahan. Mencoba ulang pembuatan atau penagihan tanpa koordinasi dapat menghasilkan duplikat, meskipun pengguna hanya mengklik sekali.
Tentukan satu kunci untuk setiap operasi yang dimaksudkan
- Hasilkan kunci acak saat pengguna memulai operasi dan gunakan kembali untuk mencoba ulang operasi yang sama.
- Minta server menyimpan kunci dengan hasilnya dan menolak penggunaan kembali dengan isi permintaan yang berbeda.
- Pilih dan dokumentasikan periode retensi yang mencakup jangka waktu percobaan ulang yang diharapkan.
Kembalikan hasil yang konsisten
Ketika kunci yang sama muncul lagi, kembalikan hasil asli atau respons yang sedang berlangsung yang didokumentasikan daripada menjalankan mutasi lagi. Jangan perlakukan kunci sebagai otentikasi; mengotorisasi setiap permintaan secara independen.
Uji kehilangan respons dan permintaan berulang di batas server. Kunci tombol dapat mengurangi klik yang tidak disengaja, namun tidak menggantikan idempotensi sisi server saat jaringan mencoba ulang.
