ඔබගේ වෙබ් අඩවියේ ගෙවීම් බොත්තම ඔබා, පසුබැසී සේවාදායකය Payment Provider එකකට ඉල්ලීමක් යවනවා. ඉල්ලීම සාර්ථකව සම්පූර්ණ වුනාද? එහෙත් පිළිතුර බ්රව්සරයට නොපැමිණි පසු, පාරිභෝගිකයාට දෙවරක් ගාස්තුවක් අයකරන තත්ත්වයක් සිදුවෙයි.
මෙම ගැටළුවේ මුල කෙලවරේ, බ්රව්සරය සම්බන්ධතාවය කඩා වැටීම හේතුවෙන් timeout එකක් ලැබේ. ඒ නිසා එය එකම POST ඉල්ලීම නැවත යවනවා. එතැන්දී backend එක එම ඉල්ලීම නව ගෙවීමක් ලෙස ප්රතිචාර දක්වයි. එයින් එකම පාරිභෝගික ක්රියාකාරිත්වයක් දෙකක් ව්යවහාරික ගෙවීම් බවට පත් වෙයි.
ඔබට මේ වගේ සිදුවීම් වැළැක්වීමට, retry යන උපදෙස් පමණක් නොව, server එකට “එකම ව්යාපාරික ක්රියාව” කියා හඳුනාගත හැකි ආකාරයක් අවශ්යයි. ඒකට idempotency key එකක් භාවිතා කරන්නේ හොඳම විසඳුමයි. client එකක් එක් ගෙවීමකට එක් අද්විතීය key එකක් ජනනය කර, එය request header එකේ “Idempotency-Key” ලෙස යවයි. එකම key එක සමඟ නැවත request එකක් එළඹුනොත්, server එක පූර්ව ප්රතිඵලය ලබා දෙයි; වෙනස් payload එකක් එළඹුනොත් error එකක් දෙනවා.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ developers, fintech startups, හා e‑commerce ව්යාපාර සඳහා මේ පදනම ඉතා ප්රයෝජනවත්.
- දෝෂ-රහිත ගෙවීම්: ද්විත්ව ගාස්තු හෝ අයවැය ගැටළු වලින් පාරිභෝගික විශ්වාසය අඩු නොවේ.
- අධි විශ්වාසනීය API: Idempotency key එකක් ඇතුළත් කිරීමෙන් API එකේ සාර්ථක retry ක්රියාකාරිත්වය සලසා ගත හැක.
- ව්යාපාරික පිරිවැය අඩු කිරීම: අතිරේක ගාස්තු, අනුමත නොකළ ගෙවීම් හෝ support tickets ගණන අඩු වේ.
- ඉගෙනුම් අවස්ථා: University curricula හා coding bootcamps වලට real‑world distributed system patterns ලෙස මෙම සංකල්පය ඉගැන්විය හැක.
ඉදිරි කාලයේ, සිංහල API developers ලාත් idempotency key ක්රමය අනුගමනය කරන්නේ නම්, ගනුදෙනු දෝෂයන් නිසා සිදුවන නීතිමය හා නීතිපති ගැටළු වැළැක්විය හැකි වේ.
අවසන් වශයෙන්, API design එකේ retry logic එකක් ඇතුළත් කරන විට, ඒක “request” නොව “business operation” බවට පරිවර්තනය කළ යුතුය. Idempotency key එක මේ වෙනසට මූලික හුදකලා පදයක් වන අතර, එය නිවැරදිව ක්රියාත්මක කළාම පාරිභෝගිකයාට අනිවාර්යයෙන්ම හොඳ අත්දැකීමක් ලැබේ.