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

Saga Pattern, Outbox සහ Idempotency – මයික්‍රොසර්විස් වල නව තාරකාව

Saga Pattern, Outbox සහ Idempotency – මයික්‍රොසර්විස් වල නව තාරකාව

ඇතුළත් තැන්පත් (transaction) එකක් බොහෝ සේවාවන් අතර බෙදා හරින අවශ්‍යතාවයක් ඇතිවූ විට, පරණ @Transactional වැනි ක්‍රමය පවා අධික පීඩනයට පත් වෙයි. මයික්‍රොසර්විස්, NoSQL, පණිවිඩ කෝපි සහ සිදුවීම් (events) යන නව පරිසරයන්ට අනුකූලව, ACID නීතිවලට වඩා BASE (Basic Availability, Soft state, Eventual consistency) මත පදනම් වූ සැලසුම් අවශ්‍ය වේ.

Saga Pattern – විශාල ලැජ්ජාවන් බෙදා හරින ආකාරය

Saga Pattern එකේ මූලික අදහස වන්නේ, එක් විශාල transaction එකක් බෙදා හරිනවායි. සෑම සේවාවක්ම තනි තනි local transaction එකක් කරයි, එයට අදාළ compensation (reverse) ක්‍රියාවලියක්ද සකස් කරයි. මෙයට දෙවර්ගයක් ඇත:

  • Coreography – සෑම සේවාවක්ම තමන්ගේ event එකක් ප්‍රකාශ කර, අනෙකුත් සේවාවන් ඒ event එක අසයි. උදාහරණයක් ලෙස, Order සේවාව ‘OrderCreated’ event එකක් ප්‍රකාශ කර, Payment සේවාව ඒ event එක අසා ගෙවීම් අනුමත කරයි; ගෙවීම අසාර්ථක වුවහොත් ‘PaymentFailed’ event එකක් නිකුත් කරයි.
  • Orchestration – මධ්‍යස්ථ “orchestrator” එකක් සියලු පියවරයන් පාලනය කරයි. එය එක්-එක පියවර කරගෙන, අසාර්ථක වුනහොත් පසුපසින් compensation ක්‍රියාත්මක කරයි.

Coreography එකේ අඩු coupling වර්ගයක් ඇති අතර, orchestrator එකේ පාලනය සෘජු වීම නිසා monitoring සහ logging පහසු වේ.

Compensation – මූලික rollback නැති විට කළ යුතු දේ

Non‑transactional පද්ධතියක rollback ක්‍රමයක් නොමැත. එබැවින්, පියවර දෙකේදී වැරද්දක් සිදු වුවහොත්, පළමු පියවරේ ක්‍රියාවලිය reverse (cancel) කිරීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, හෝටල් වෙන්කිරීමේ සේවාව එකම reservation එක සුරක්ෂිත කරයි, පසුගිය පියවර ගෙවීම් අසාර්ථක වුවහොත් reservation එක “CANCELLED” ලෙස නවත්වයි.

Transactional Outbox හා Idempotency – පණිවිඩ නැතිවීම සහ නැවත නැවත සිදු නොවීම

Outbox pattern එකේ, සේවාවක් දත්ත සුරක්ෂිත කරගත් පසු, ඒ වෙනස්කම් පණිවිඩ කෝපියකට (message queue) ලියා තබයි. මෙයින් පණිවිඩයක් අහිමි වීමේ අවදානම ඉතා අඩු වේ. Idempotency යනු, එකම පණිවිඩය වරක් හෝ වැඩි වරක් ලැබුණාම එය එකම ප්‍රතිඵලයක් දෙන පරිදි සැකසීමයි – duplicate processing එකක් වැළැක්වීම සඳහා.

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

ශ්‍රී ලංකාවේ තාක්ෂණික ආරම්භකයන්, මයික්‍රොසර්විස් පදනම් කරගත් e‑commerce, fintech, logistics වැනි ව්‍යාපාරික යෙදුම් නිර්මාණය කරන විට, මෙම සැලසුම් අත්‍යවශ්‍ය වේ.

  • දත්ත සංග්‍රහණයේ අඛණ්ඩතාවය තහවුරු කරයි – ගනුදෙනු අසාර්ථක වීමේ අවදානම අඩු වේ.
  • පද්ධති අතර coupling අඩු කිරීමෙන්, නව සේවාවන් ඉක්මනින් එක්කල හැකිය.
  • Outbox සහ Idempotency නිසා පණිවිඩ අහිමි වීමෙන් ඇති වියමන අලාභය වැළැක්වේ.
  • Compensation මාර්ගය හරහා, පද්ධතියේ දෝෂය සිදුවූ විට පරිශීලක අත්දැකීම අඩු වේ.

ඉදිරියේදී, ශ්‍රී ලංකා සංවර්ධකයින්ට මෙම පදනම් තාක්ෂණික රටාවන් අධ්‍යයනය කිරීම, ජාතික තාක්ෂණික ආර්ථිකය වර්ධනය කිරීමට මූලික පියවරක් වනු ඇත.

ඔබේ පද්ධතියේ ස්ථාවරතාවය වැඩිදියුණු කිරීමට, Saga Pattern, Outbox සහ Idempotency යන තාක්ෂණික උපකරණ භාවිතා කිරීම අත්‍යවශ්‍යයි. අදම ඔබේ architecture එකට එක් කර බලන්න!

💡 ඔබේ පද්ධතියේ අඛණ්ඩතාවය දැන්ම වැඩිදියුණු කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Saga #Outbox #Idempotency #Microservices #Architecture