Temporal යනු බෙදාහරින මයික්රොසේවා සහ asynchronous පද්ධතිවල වැඩපිළිවෙළ ආරක්ෂිතව සම්පූර්ණ කරගැනීමට නිර්මාණය කරන ලද දිරවාගත ක්රියාකාරකම් එන්ජින් එකකි. මොනෝලිත්තයක් සිට මයික්රොසේවා ආකෘතියට මාරු වන කණ්ඩායම් වලට, අර්ධ-සම්පූර්ණ වැඩ, දෙවරක් ක්රියා නොකළ යුතු පියවර, හෝ සේවා කැඳවීම අවසන් වීමට පෙර පිළිතුරු ලැබීම වැනි ගැටළු බොහෝ වෙයි. Temporal මේ ගැටළු බොහොමයක් විසඳා, ඔබට වර්ක්ෆ්ලෝ එකක් නිර්වචනය කර, සේවකයන් අතුරුදහන් වුනාමත් එය අවසන් වන තුරු ක්රියා කරයි.
සාමාන්යයෙන් බෙදාහරින පද්ධතියක වැඩක් මැදින් අසාර්ථක වුවහොත්, සේවා A සාර්ථකයි, සේවා B කාලය ඉක්මවා යයි, පෝඩ් මරයි, ඉතිරි C ක්රියා නොවේ. එවිට අර්ධ-සම්පූර්ණ තත්වයක් පවතී, ඒ ගැන මතකයක් නැත. බොහෝ සංවර්ධකයන් මේ සඳහා තත්ත්ව කාලම්, ක්රෝන් ජොබ්, හස්තකෘති retry ලොජික් යොදා ගනී. Temporal ඒ සියල්ලක් ඉවත් කරයි; එය සෑම පියවරක්ම event history එකකට ලියා තබයි. සේවකයෙක් බිඳී ගියොත්, තවත් සේවකයෙක් එම ඉතිහාසය replay කර, තත්වය නැවත ගොඩනැගී, අසාර්ථක පියවර නැවත උත්සාහ කරයි.
Golden Rule – Workflow එක තීරණ ගනී, Activity එක ක්රියාවලිය සිදු කරයි යන නීතිය Temporal හි මූලිකයයි. Workflow යනු පියවරවල අනුක්රමය නියම කරන orchestration කේතය; Activity යනු සැබෑ වැඩ – සේවා කැඳවීම, දත්ත ගබඩා කිරීම, Kafka publish කිරීම වැනි. සියළු business logic හා බාහිර සම්බන්ධතා Activity තුළ පමණක් තිබිය යුතුය. Workflow එක deterministic (නිර්ණායක) විය යුතු අතර, නැවත replay කරන විට එකම තීරණ ගත යුතුයි; එබැවින් clock, random, network call වැනි nondeterministic කාරණා Workflow තුළ නොකළ යුතුය.
Temporal එක සේවාවක් තුළම පවත්වා ගැනීමත් අත්යවශ්යයි. Temporal ඔබට workflow එකක් එක් සේවාවකින් නිර්වචනය කර, activity වෙනත් සේවාවන් තුළ ක්රියාත්මක කළ හැකියැයි ප්රචාරය කරයි. එය “coupling trap” එකක් බවට පත්වේ; activity එකේ input/output schema එක workflow එකට බැඳෙයි, ඒක වෙනස් වුවහොත් ඉදිරි workflow ගලවා ගත නොහැක. එබැවින් workflow සහ සියළු activity එකම සේවාවක හිමිකරගන්න; අනෙකුත් සේවාවන්ට සාමාන්ය HTTP හෝ Kafka පණිවුඩ මාර්ගයෙන් සම්බන්ධ වන්න.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණය ඉගෙනගන්නා සිසුන්, මෘදුකාංග සංවර්ධකයින් හා ව්යාපාරිකයන්ට Temporal හි ප්රයෝජන බොහොමයි.
- දිරවාගත workflow මඟින් ගනුදෙනු, ගෙවීම් වැනි මූල්ය ක්රියාකාරකම් අඩු දෝෂයකින් සිදු කළ හැකිය.
- අසාර්ථකතා කළමනාකරණය ස්වයංක්රීයව සිදු වීම නිසා, DevOps කණ්ඩායම් අතිරේක මොනिटरින් වැඩ අඩු කරයි.
- Workflow එක deterministic වීම නිසා, කණ්ඩායම් අතර code sharing හා testing පහසුය.
- සේවාවක් තුළම Temporal පවත්වා ගැනීමෙන්, සංවිධාන අතර dependency ගැටළු වැළැක්විය හැක.
අවසානයේ, Temporal භාවිතයෙන් ඔබේ පද්ධතියේ විශ්වාසය, ප්රතිචාර වේගය, හා පරිපාලන පිරිවැය සියල්ලම ඉහළ යයි. මයික්රොසේවා ආකෘතියට පියවර තබන කණ්ඩායම් මෙය අත්හදා බලනවා නම්, ඉදිරි කාලයේ වැඩි ස්ථායීත්වයක් සහ අධික පරිමාණය සඳහා සූදානම් විය හැක.