ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-23, Thursday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

CSV අපනයන ක්‍රියාවලිය Idempotent කරගනිමින් දෝෂ රහිත පරිශීලක අත්දැකීම

CSV අපනයන ක්‍රියාවලිය Idempotent කරගනිමින් දෝෂ රහිත පරිශීලක අත්දැකීම

බ්‍රවුසරයෙන් CSV ගොනුවක් අපනයනය කරන වෙබ් යෙදුම් වල, පළමු ක්ලික් එකට ප්‍රතිචාර නොලැබීම නිසා පරිශීලකයින් දෙවරක් ක්ලික් කරලා, API එක දෙකම රැඳෙන සේවා ඉල්ලීම් (jobs) සෑදෙයි. ඒත් එම සේවා ඉල්ලීම් එකක් අසාර්ථක වීම, නැවත ලැබීම, හෝ worker එකේ acknowledgment අහිමි වීමෙන් තෙවන ගොනුවක් පවා උත්පාදනය වෙයි. UI එකේ ඒම ඉල්ලීමේ ත්‍රිගුණ ලින්ක් පෙන්වීම, පරිශීලකයාට ගැඹුරු ගැටලුවක් බවට පත්වේ.

මෙවැනි ගැටලුවට බොත්තම අක්‍රිය (disable) කිරීම පමණක් ප්‍රතිකාර නොවේ; මෙය ක්‍රියාකාරිත්වයේ මූලික සංකල්පය, “එක් අනුමත කිරීමක් = එක් දෘඩාංග ක්‍රියාකාරකම” යන නීතිය උල්ලංඝනය කරයි. ඒ නිසා, ප්‍රතිකාරය සෑම පට්ටමකම (layer) අතුරින්ම සමානව සුරක්ෂිත කළ යුතුයි.

ප්‍රථමයෙන්, බ්‍රවුසරය Idempotency Key එකක් (crypto.randomUUID() භාවිතයෙන්) ජනනය කර, එය request header “Idempotency-Key” ලෙස API එකට යවයි. API පාර්ශවයේ, පරිශීලකයාගේ authentication පරීක්ෂා කර, request hash එක ගණනය කර, “exports” වගුවේ (actor_id, idempotency_key) යුගලය අනන්‍යතාවය තහවුරු කරයි. ද්විත්ව ඉල්ලීමක් එන විට, key එක එකම actor එකට අයත් නම්, පළමු රෙකෝඩ් එක පමණක් භාවිතා කර, නව job එකක් සෑදීම නැවැත්වේ.

worker පාර්ශවය “at least once” පණිවුඩ සැපයුම් මොඩලය පවත්වාගෙන, ඒකම operation_id ආශ්‍රිත deterministic object key (exports/{operation_id}.csv) භාවිතා කරයි. job එක claim කිරීම, තාවකාලික ගොනුවකට stream කිරීම, checksum පරීක්ෂාව, පසුව final key එකට rename කිරීම, සහ transactionally status “ready” ලෙස සකස් කිරීම—all these steps ensure that even if worker නැවත ආරම්භ වුවත්, එකම CSV ගොනුවක් පමණක් නිර්මාණය වේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • විකාශකයින් – Idempotency Key භාවිතය, API design වල මූලික පුරුද්දක් වන අතර, ලංකාවේ තරුණ devs ලාට අන්තර්ජාල පදනමක් ගොඩනැගීමට උදව් කරයි.
  • ව්‍යාපාර – දත්ත අපනයන දෝෂ අඩු කිරීම, ගනුදෙනුකාරයන්ට විශ්වාසනීය export සේවාවක් ලබා දෙයි, ඒ නිසා operational cost අඩුවේ.
  • අධ්‍යයන ආයතන – CSV export පරික්ෂණ කටයුතු, data analytics පාඨමාලා වල practical example එකක් වශයෙන් භාවිතා කර හැක.

අවසානයේ, API response එක 202 (Accepted) සමඟ operation URL එක ලබා දී, UI එක status අනුව “queued”, “running”, “ready”, “failed” ලෙස පෙන්වයි. download URL එක කෙටි කාලීන signed URL එකක් වන අතර, ගොනුව private, encrypted, retention policy අනුව මකා දමයි. මෙවැනි සම්පූර්ණ idempotent flow එක, පරිශීලක අත්දැකීමේ ගුණාත්මකභාවය වැඩි කර, backend reliability එකත් සමඟ සුරක්ෂිත කරයි.

💡 ඔබගේ යෙදුමට Idempotency ක්‍රමය දැන් එක් කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#CSV #Idempotency #API #Backend #Web