আরও কিছু গবেষণা করার পরে, আমি এই নিবন্ধটিতে হোঁচট খেয়েছি যেখান থেকে আমি কিছু উদ্ধৃতি টানলাম যা আমি মনে করি যে আমি অর্জন করতে চাই তার জন্য সহায়ক (এবং ভবিষ্যতের যে কোনও পাঠক)। এটি একটি অত্যাবশ্যক প্রোগ্রামিং মডেলের চেয়ে একটি প্রতিক্রিয়াশীল প্রোগ্রামিং মডেল গ্রহণ করার একটি উপায় সরবরাহ করে।
ইভেন্ট-গুন
এখানে ধারণাটি হ'ল প্রতিটি অ্যাপ্লিকেশনের স্থিতিশীল রূপান্তরকে একটি পরিবর্তনীয় ইভেন্টের আকারে উপস্থাপন করা। ইভেন্টগুলি লগ বা জার্নাল আকারে ঘটার সাথে সাথে সংরক্ষণ করা হয় (এটি 'ইভেন্ট স্টোর' হিসাবেও পরিচিত)। এগুলিকে সময়ের সাথে সাথে সামগ্রিকভাবে কীভাবে অ্যাপ্লিকেশনটির রাজ্য বিবর্তিত হয়েছিল তা উপস্থাপনের লক্ষ্য নিয়ে অনির্দিষ্টকালের জন্য জিজ্ঞাসা ও সংরক্ষণ করা যেতে পারে।
এটি যেটি সম্পাদন করতে সহায়তা করে তা হ'ল যদি কোনও মাইক্রোসারওয়াইস তার সাথে সম্পর্কিত অন্যান্য ইভেন্টগুলি প্রকাশিত হয় এবং ইভেন্টগুলি গ্রাহিত হয়, বলুন, সেই মাইক্রোসার্চির অন্যান্য উদাহরণ রয়েছে, যখন সেই মাইক্রোসারওয়াইস ফিরে আসে, তখন এটি event store
সমস্ত তথ্য পুনরুদ্ধার করার জন্য এটি উল্লেখ করতে পারে পিরিয়ড চলাকালীন যে ঘটনাগুলি এটি মিস হয়েছিল তা হ্রাস পেয়েছে।
ইভেন্ট ব্রোকার হিসাবে অ্যাপাচি কাফকা
অ্যাপাচি কাফকার ব্যবহার বিবেচনা করুন যা প্রতি সেকেন্ডে কয়েক হাজার ইভেন্ট সংরক্ষণ এবং প্রেরণ করতে পারে এবং এতে অন্তর্নির্মিত প্রতিলিপি এবং দোষ-সহনশীলতা ব্যবস্থা রয়েছে। এটির ইভেন্টগুলির একটি অবিরাম স্টোর রয়েছে যা ডিস্কে অনির্দিষ্টকালের জন্য সংরক্ষণ করা যেতে পারে এবং যে কোনও সময় টপিক (কাফকার অভিনব সারি) থেকে বিতরণ করা হয়েছিল (তবে সরানো হয়নি) med
ইভেন্টগুলি এরপরে অফসেটগুলি অর্পণ করা হয় যেগুলি টপিকের মধ্যে অবিচ্ছিন্নভাবে তাদের সনাক্ত করে - কাফকা সহজেই অফসেটগুলি পরিচালনা করতে পারে, সহজেই "একবারে একবারে" বা "কমপক্ষে একবার" ডেলিভারি শব্দার্থবিজ্ঞান সরবরাহ করতে পারে তবে কোনও ইভেন্ট গ্রাহক একটি বিষয়তে যোগ দিলে তাদের সাথে আলোচনাও করা যেতে পারে when , মাইক্রোসার্ফেসিকে সময়মতো যেকোন স্বেচ্ছাসেবী স্থান থেকে ইভেন্টগুলি গ্রাস করতে শুরু করে - সাধারণত সেখান থেকে গ্রাহক ছাড়েন। যদি সর্বশেষ গ্রাসকৃত ইভেন্ট অফসেট পরিষেবাগুলির স্থানীয় স্টোরেজে লেনদেনের সাথে অবিচল থাকে তবে ইউজক্যাসগুলি 'সাফল্যের সাথে সমাপ্ত' হয় তবে সেই অফসেটটি খুব সহজেই "ঠিক একবার" ইভেন্ট বিতরণার্থক শব্দার্থবিদ্যা অর্জন করতে ব্যবহার করা যেতে পারে।
প্রকৃতপক্ষে, যখন গ্রাহকরা কাফকার কাছে নিজেকে সনাক্ত করেন, কাফকা রেকর্ড করবে যে কোন বার্তাটি কোন ভোক্তার কাছে পৌঁছেছিল যাতে এটি আর ব্যবহার না করে।
কাহিনীগুলি
আরও জটিল ব্যবহারের ক্ষেত্রে যেখানে বিভিন্ন পরিষেবার মধ্যে যোগাযোগ প্রকৃতপক্ষে প্রয়োজনীয়, ইউসকেস সমাপ্ত করার দায়িত্বটি অবশ্যই ভালভাবে স্বীকৃত হওয়া উচিত - ইউসকেস বিকেন্দ্রীকরণ করা হয় এবং কেবল তখনই সমাপ্ত হয় যখন জড়িত সমস্ত পরিষেবাগুলি তাদের কাজটি সফলভাবে সমাপ্ত হিসাবে স্বীকৃতি দেয়, অন্যথায় পুরো ইউসকেস ব্যর্থ হতে হবে এবং কোনও অবৈধ স্থানীয় রাষ্ট্রকে রোলব্যাক করতে সংশোধনমূলক পদক্ষেপগুলি অবশ্যই ট্রিগার করা উচিত।
এটি যখন সাগা খেলতে আসে। একটি কাহিনী স্থানীয় লেনদেনের একটি ক্রম। প্রতিটি স্থানীয় লেনদেন ডাটাবেস আপডেট করে এবং সাগায় পরবর্তী স্থানীয় লেনদেন ট্রিগার করতে একটি বার্তা বা ইভেন্ট প্রকাশ করে। যদি কোনও স্থানীয় লেনদেন ব্যর্থ হয় কারণ এটি কোনও ব্যবসায়ের নিয়ম লঙ্ঘন করে তবে সাগা পূর্ববর্তী স্থানীয় লেনদেনের ফলে যে পরিবর্তনগুলি হয়েছিল তা পূর্বাবস্থায় ফিরিয়ে আনার একটি ধারাবাহিক সম্পাদন করে। পড়ুন এই আরও তথ্যের জন্য।