PayStory: Pastikan State Sebuah Proses Sebelum Mengembalikan Respon

Sandi Fajariadi
4 min readNov 5, 2022

Artikel ini masih bagian dari trilogi artikel Request dan Response, dimana bagian pertama bisa dilihat di sini:

dan bagian kedua bisa dilihat disini:

Pembahasan terkait penanganan suatu proses yang berkaitan dengan transaksi finansial sangatlah penting karena kita harus bisa memastikan bahwa jika ada uang yang didebet atau dikreditkan harus sesuai dengan hasil akhir dari proses yang dilakukan. Jangan sampai kita mendebet saldo seseorang pada saat transaksi gagal atau bahkan yang lebih buruk lagi kita mengembalikan uang kepada seseorang dimana sebenarnya transaksinya berhasil.

Pada artikel sebelumnya kita sudah membahas bagaimana cara menangani permintaan suatu proses dimana kita berhadapan dengan situasi belum mendapatkan respon balikan atau kita mendapatkan respon yang tidak sesuai dan tidak terdokumentasi. Sekarang kita akan membahas di posisi yang menerima permintaan, bagaimana seharusnya kita menangani permintaan yang datang dan status apa yang sebaiknya kita kembalikan kepada yang mengirimkan permintaan tersebut.

Pada umumnya, state atau keadaan suatu permintaan hanya mempunyai 2 kondisi, yaitu :

  1. Sudah selesai mengerjakan aktivitas atau permintaan yang diinginkan
  2. Masih dalam proses mengerjakan permintaan tersebut

Jika permintaan sudah selesai dilakukan maka umumnya akan menghasilkan 2 kondisi lagi, yaitu sukses atau gagal. Hasil ini yang akan menjadi acuan apakah suatu permintaan sudah berhasil dilakukan atau tidak. Jika respon sukses artinya permintaan sudah berhasil diproses. Jika respon gagal maka artinya permintaan tidak bisa diproses. Sukses atau gagal hanya akan muncul jika proses dari permintaan tersebut sudah selesai.

Sukses atau gagal hanya akan muncul jika proses dari permintaan tersebut sudah selesai

Jika state atau kondisi dari permintaan masih diproses, tentunya kita tidak bisa memberikan respon sukses atau gagal jika ditanyakan status dari permintaa tersebut. Analoginya misalnya kita diminta meminum air di gelas hingga habis.

Jika kita meminum air di gelas hingga habis maka bisa dikatakan permintaannya sukses. Jika kita menyerah dan tidak berhasil menghabiskan maka bisa dikatakan permintaannya gagal. Tapi saat kita sedang meminum air di gelas, kondisi tersebut tidak bisa dikatakan bahwa permintaannya sukses atau gagal. Pada saat kita sedang meminum air di gelas artinya menandakan bahwa state atau kondisi dari permintaan tersebut sedang berlangsung. Artinya jika kondisi suatu permintaan masih berlangsung prosesnya maka tidak boleh diberikan jawaban permintaannya adalah sukses atau gagal. Jika ada orang yang bertanya statusnya kepada kita saat kita meminum air di gelas, maka jawaban yang paling pas adalah “Airnya sedang diminum”.

Jika kondisi suatu permintaan masih berlangsung prosesnya maka tidak boleh diberikan jawaban permintaannya adalah sukses atau gagal

Jika dijabarkan dalam bentuk alur diagram, maka bentuknya akan seperti ini

Dengan begini maka yang melakukan pertanyaan status bisa mengetahui bahwa permintaannya masih diproses dan harus menunggu dulu. Pertanyaan status bisa dilakukan lagi nantinya dan jika prosesnya sudah selesai maka jawaban statusnya akan berisi sukses atau gagal.

Jadi untuk setiap permintaan suatu aktivitas, pastikan ketiga hal ini :

  1. Jika mendapatkan respon timeout, jangan artikan sebagai respon gagal
  2. Jika mendapatkan respon yang tidak sesuai atau tidak terdokumentasi, jangan artikan juga sebagai respon gagal
  3. Jika permintaan tersebut masih diproses dan ditanyakan statusnya, jangan kembalikan dengan respon sukses atau gagal.

Ciao!

— -

Sandi Fajariadi mempunyai pengalaman di product development terutama terkait payment, emoney dan ewallet. Di waktu senggang membuat aplikasi mobile seperti QRIS wantuno, cek RS dan dengan temannya bersenang senang membuat beberapa lagu di The Vader

Originally published at https://www.linkedin.com.

Sign up to discover human stories that deepen your understanding of the world.

--

--

Sandi Fajariadi
Sandi Fajariadi

Written by Sandi Fajariadi

10+ years deep in payment systems, always curious about QRIS. Let's talk!

No responses yet

Write a response