Digital Transformation
Idempotensi (Idempotency)
Apa itu Idempotensi?
Idempotensi adalah jaminan bahwa menjalankan operasi yang sama dua kali tidak menambah efek dibanding menjalankannya sekali. Analogi sederhananya seperti menekan tombol lantai 3 di lift: pencet sekali atau lima kali, lift tetap berhenti di lantai 3, bukan lantai 15. Dalam sistem digital, sifat ini penting karena jaringan tidak selalu andal dan klien sering mengirim ulang permintaan yang dikira gagal.
Operasi pembacaan data umumnya idempoten secara alami. Yang berisiko adalah operasi yang mengubah data, misalnya membuat order atau memotong saldo. Di sinilah pengembang memakai idempotency key, sebuah penanda unik per transaksi, agar server bisa mengenali permintaan duplikat dan mengembalikan hasil yang sama tanpa memproses ulang.
Cara Kerja Idempotency Key
| Langkah | Yang terjadi |
|---|---|
| Klien kirim permintaan | Sertakan header unik, misal Idempotency-Key: abc-123 |
| Server cek key | Kalau key belum pernah ada, proses dan simpan hasilnya |
| Permintaan ulang | Key sama dikenali, server kembalikan hasil tersimpan tanpa eksekusi ulang |
Kenapa Penting?
Tanpa idempotensi, satu klik ganda bisa jadi dua tagihan. Untuk bisnis yang memproses pembayaran atau memicu otomatisasi lewat marketing automation, duplikasi data adalah sumber komplain dan kerugian nyata. Praktik standar industri, termasuk yang dipakai Stripe dan payment gateway lokal, mewajibkan idempotency key pada endpoint yang sensitif.
Pertanyaan Umum
Apakah operasi GET selalu idempoten?
Ya. Membaca data berkali-kali tidak mengubah kondisi server, jadi GET idempoten secara bawaan. Yang perlu dijaga adalah POST dan operasi penulisan lain.
Apa beda idempoten dengan aman (safe)?
Operasi aman tidak mengubah data sama sekali. Operasi idempoten boleh mengubah data, tetapi hasil akhirnya tetap sama walau diulang.
Istilah Terkait