#dusk $DUSK @Dusk
Beberapa waktu lalu, saya membeli tiket film ketika layar pembayaran membeku, jadi saya hampir mengklik lagi. Untungnya, email konfirmasi tiba lebih dulu. Satu pembelian, dan saya hampir membayar dua kali.
Saya memikirkan hal itu saat membaca bagaimana Dusk menangani setoran Moonlight. Dusk menggunakan transaction ID sebagai kunci idempotensi, sehingga sebuah pemindai bisa memindai ulang data setelah terjadi kegagalan tanpa mengkreditkan transaksi yang sama dua kali. Yang menarik perhatian saya adalah peringatannya: jangan gunakan memo untuk ini.
Awalnya, saya mengira ini hanya untuk mencegah kredit ganda. Tetapi memo menggambarkan sebuah transaksi; transaction ID mengidentifikasi transaksi itu sendiri. Ketika sebuah sistem macet dan mulai lagi, pembedaan itu memberi tahu apakah sistem sedang melihat sesuatu yang baru atau hanya melihat masa lalu lagi.
Saat itulah idempotensi menjadi semakin menarik bagi saya. Sistem keuangan tidak hanya perlu memproses apa yang terjadi dengan benar; sistem juga harus mengenali apa yang sudah terjadi. Jika kegagalan memaksa sebuah sistem melihat masa lalu lagi, bagaimana cara memastikan masa lalu tersebut tidak dihitung dua kali?
$PEPE $MUBARAK
Beberapa waktu lalu, saya membeli tiket film ketika layar pembayaran membeku, jadi saya hampir mengklik lagi. Untungnya, email konfirmasi tiba lebih dulu. Satu pembelian, dan saya hampir membayar dua kali.
Saya memikirkan hal itu saat membaca bagaimana Dusk menangani setoran Moonlight. Dusk menggunakan transaction ID sebagai kunci idempotensi, sehingga sebuah pemindai bisa memindai ulang data setelah terjadi kegagalan tanpa mengkreditkan transaksi yang sama dua kali. Yang menarik perhatian saya adalah peringatannya: jangan gunakan memo untuk ini.
Awalnya, saya mengira ini hanya untuk mencegah kredit ganda. Tetapi memo menggambarkan sebuah transaksi; transaction ID mengidentifikasi transaksi itu sendiri. Ketika sebuah sistem macet dan mulai lagi, pembedaan itu memberi tahu apakah sistem sedang melihat sesuatu yang baru atau hanya melihat masa lalu lagi.
Saat itulah idempotensi menjadi semakin menarik bagi saya. Sistem keuangan tidak hanya perlu memproses apa yang terjadi dengan benar; sistem juga harus mengenali apa yang sudah terjadi. Jika kegagalan memaksa sebuah sistem melihat masa lalu lagi, bagaimana cara memastikan masa lalu tersebut tidak dihitung dua kali?
$PEPE $MUBARAK