Compensating transaction
کاروباری عمل کا نفاذ ایک یا زیادہ لین دین پر مشتمل ہوتا ہے۔ ہر لین دین کئی انفرادی کارروائیوں پر مشتمل ہو سکتا ہے، پھر بھی مجموعی طور پر، یہ نظام کو مستقل حالتوں کے درمیان منتقل کرتا ہے۔ نظام کے دو گروہ ہیں جہاں معاوضہ لین دین کا اطلاق کیا جا سکتا ہے: 1. ڈیٹا بیس کے تناظر میں یہ اکثر لین دین اور کمٹ/رول بیک میکانزم کا استعمال کرتے ہوئے آسانی سے حاصل کیا جاتا ہے۔ معاوضہ لین دین کی منطق کو ڈیٹا بیس سپورٹنگ کمٹ/رول بیک کے اوپر اضافی طور پر لاگو کیا جا سکتا ہے۔ اس صورت میں، ہم کاروباری لین دین کو کم کر سکتے ہیں۔ 2. دستیاب کمٹ/رول بیک میکانزم کے بغیر سسٹمز کے لیے، کوئی معاوضہ لین دین کے ساتھ ناکام لین دین کو کالعدم کر سکتا ہے، جو سسٹم کو اس کی ابتدائی حالت میں واپس لے آئے گا۔ عام طور پر، یہ صرف ایک حل ہے جسے دستی طور پر نافذ کرنا پڑتا ہے اور اس بات کی ضمانت نہیں دے سکتا کہ نظام ہمیشہ مستقل حالت میں ختم ہوتا ہے۔ سسٹم ڈیزائنر کو اس بات پر غور کرنے کی ضرورت پڑ سکتی ہے کہ اگر معاوضہ کا لین دین بھی ناکام ہو جائے تو کیا ہوتا ہے۔ معاوضہ لین دین کا استعمال اس صورت میں بھی کیا جاتا ہے جہاں لین دین طویل عرصے تک رہتا ہے (جسے عام طور پر ساگا لین دین کہا جاتا ہے)، مثال کے طور پر کسی کاروباری عمل میں جس میں صارف کے ان پٹ کی ضرورت ہوتی ہے۔ ایسی صورتوں میں، ڈیٹا کو مستقل اسٹوریج کے لیے وقف کیا جائے گا، لیکن بعد میں اسے واپس لانے کی ضرورت پڑ سکتی ہے، شاید اس کی وجہ یہ ہے کہ صارف آپریشن کو منسوخ کرنے کا انتخاب کرتا ہے۔ روایتی رول بیکس کے برعکس، عام طور پر ایک طویل مدتی لین دین کو واپس لانے اور نظام کو اس کی اصل حالت میں بحال کرنے کے لیے مخصوص کاروباری منطق کی ضرورت ہوگی۔ اس قسم کا لین دین تقسیم شدہ لین دین سے مختلف ہوتا ہے (اکثر دو فیز کممیٹ پروٹوکول کا استعمال کرتے ہوئے نافذ کیا جاتا ہے)، کیونکہ اگرچہ دونوں قسم کے لین دین کے نتیجے میں متعدد ڈیٹا اسٹورز کو اپ ڈیٹ کیا جا سکتا ہے، لیکن معاوضہ لین دین اپ ڈیٹس کو طویل عرصے تک جاری رکھنے کی اجازت دیتا ہے۔ معاوضہ لین دین اکثر ویب خدمات میں ڈیزائن کیے جاتے ہیں جو کاروباری عمل کے نفاذ میں حصہ لیتے ہیں جو خدمت پر مبنی فن تعمیر کے حل کا حصہ ہیں۔ بزنس پروسیس ایگزیکیوشن لینگویج حوالہ جات ڈیٹا سنکرونائزیشن ٹرانزیکشن پروسیسنگ بھی دیکھیں۔