Compensating transaction
একটি ব্যবসায়িক প্রক্রিয়া এক বা একাধিক লেনদেন নিয়ে গঠিত। প্রতিটি লেনদেনে বেশ কয়েকটি পৃথক ক্রিয়াকলাপ থাকতে পারে, তবে সামগ্রিকভাবে, এটি সিস্টেমটিকে সামঞ্জস্যপূর্ণ অবস্থার মধ্যে নিয়ে যায়। ব্যবস্থার দুটি গোষ্ঠী রয়েছে যেখানে ক্ষতিপূরণ লেনদেন প্রয়োগ করা যেতে পারেঃ একটি ডাটাবেসের প্রসঙ্গে এটি প্রায়শই লেনদেন এবং কমিট/রোলব্যাক প্রক্রিয়া ব্যবহার করে সহজেই অর্জন করা যায়। কমিট/রোলব্যাক সমর্থনকারী ডাটাবেসের উপরে অতিরিক্ত হিসাবে ক্ষতিপূরণ লেনদেনের যুক্তি প্রয়োগ করা যেতে পারে। সেক্ষেত্রে, আমরা ব্যবসায়িক লেনদেনের সূক্ষ্মতা হ্রাস করতে পারি। 2. কোনও কমিট/রোলব্যাক প্রক্রিয়া ছাড়া সিস্টেমগুলির জন্য, ক্ষতিপূরণ লেনদেনের মাধ্যমে একটি ব্যর্থ লেনদেন বাতিল করা যেতে পারে, যা সিস্টেমটিকে তার প্রাথমিক অবস্থায় ফিরিয়ে আনবে। সাধারণত, এটি কেবল একটি সমাধান যা ম্যানুয়ালি প্রয়োগ করতে হয় এবং নিশ্চিত করতে পারে না যে সিস্টেমটি সর্বদা একটি সামঞ্জস্যপূর্ণ অবস্থায় শেষ হয়। সিস্টেম ডিজাইনারকে বিবেচনা করতে হতে পারে যে যদি ক্ষতিপূরণ লেনদেনও ব্যর্থ হয় তবে কী হবে। ক্ষতিপূরণ লেনদেনগুলি এমন ক্ষেত্রেও ব্যবহার করা হয় যেখানে একটি লেনদেন দীর্ঘস্থায়ী হয় (সাধারণত সাগা লেনদেন বলা হয়), উদাহরণস্বরূপ ব্যবহারকারীর ইনপুট প্রয়োজন এমন একটি ব্যবসায়িক প্রক্রিয়ায়। এই জাতীয় ক্ষেত্রে, ডেটা স্থায়ী সঞ্চয়ের জন্য প্রতিশ্রুতিবদ্ধ হবে, তবে সম্ভবত ব্যবহারকারী অপারেশনটি বাতিল করার সিদ্ধান্ত নেওয়ার কারণে পরবর্তীকালে রোলব্যাক করতে হতে পারে। প্রচলিত রোলব্যাকের বিপরীতে, একটি দীর্ঘস্থায়ী লেনদেনকে ফিরিয়ে আনতে এবং ব্যবস্থাটিকে তার মূল অবস্থায় ফিরিয়ে আনতে সাধারণত নির্দিষ্ট ব্যবসায়িক যুক্তির প্রয়োজন হবে। এই ধরনের লেনদেন বিতরণকৃত লেনদেনের থেকে পৃথক (প্রায়শই দ্বি-পর্যায়-প্রতিশ্রুতি প্রোটোকল ব্যবহার করে বাস্তবায়িত হয়), কারণ যদিও উভয় ধরনের লেনদেনের ফলে একাধিক ডেটা স্টোর আপডেট হতে পারে, ক্ষতিপূরণ লেনদেনগুলি দীর্ঘ সময়ের জন্য আপডেটের অনুমতি দেয়। ক্ষতিপূরণ লেনদেনগুলি প্রায়শই ওয়েব পরিষেবাগুলিতে ডিজাইন করা হয় যা পরিষেবা-ভিত্তিক স্থাপত্য সমাধানের অংশ হিসাবে ব্যবসায়িক প্রক্রিয়াগুলি সম্পাদনে অংশ নেয়। আরও দেখুন ব্যবসায়িক প্রক্রিয়া সম্পাদন ভাষা তথ্য সমন্বয় লেনদেন প্রক্রিয়াকরণ