গল্প: চায়ের দোকানের ইভেন্ট-ড্রিভেন আর্কিটেকচার
প্রেক্ষাপট: তুমি একটি চায়ের দোকান চালাচ্ছো, যেখানে অনেক ধরনের কাজ একই সাথে চলতে থাকে। কাস্টমাররা আসে, চা অর্ডার দেয়, পেমেন্ট করে এবং ডেলিভারি নেয়। এত কাজ একসাথে ম্যানেজ করা একটু কঠিন। তাই, তুমি একটি ইভেন্ট-ড্রিভেন সিস্টেম তৈরি করো, যেখানে প্রতিটি কাজ বা অ্যাকশন একটি ইভেন্ট হিসেবে ধরা হয়, এবং সেই ইভেন্ট অনুযায়ী কাজগুলো পরিচালিত হয়।
ইভেন্ট-ড্রিভেন আর্কিটেকচার কাকে বলে?
ইভেন্ট-ড্রিভেন আর্কিটেকচার (Event-Driven Architecture) হলো এমন একটি সিস্টেম ডিজাইন যেখানে প্রতিটি অ্যাকশন (ইভেন্ট) যেমন, অর্ডার নেয়া, পেমেন্ট হওয়া, চা বানানো, বা ডেলিভারি দেয়া — প্রতিটি কাজ স্বতন্ত্রভাবে ঘটে এবং সেগুলোর জন্য সিস্টেমের নির্দিষ্ট অংশ দায়িত্বপ্রাপ্ত থাকে।
গল্প শুরু করি:
গল্প:
তুমি তোমার চায়ের দোকানে এমন একটি ব্যবস্থা করেছো, যেখানে প্রতিটি কাজ (অর্ডার, পেমেন্ট, চা বানানো, ডেলিভারি) একটি ইভেন্ট হিসেবে ধরে নেয়া হয়।
ইভেন্ট-ড্রিভেন সিস্টেমে কাজের ধাপ:
১. অর্ডার ইভেন্ট: একজন কাস্টমার দোকানে এলো এবং চা অর্ডার দিলো। কাস্টমারের অর্ডার করা মানেই এটি একটি অর্ডার ইভেন্ট। এই ইভেন্ট তৈরি হওয়ার সাথে সাথেই তোমার সিস্টেমে একটি সিগন্যাল চলে যাবে যে, “অর্ডার ইভেন্ট” ঘটেছে।
**ইভেন্ট**: কাস্টমারের অর্ডার তৈরি হওয়া।
**ইভেন্ট হ্যান্ডলার**: অর্ডার নেওয়ার জন্য নির্দিষ্ট কর্মচারী বা সিস্টেম।
২. পেমেন্ট ইভেন্ট: কাস্টমার চা অর্ডার করার পর তারা টাকা দিলো। এবার এটা পেমেন্ট ইভেন্ট হিসেবে ধরে নেয়া হলো। অর্থাৎ, এই ইভেন্ট ঘটার পর একটি মেসেজ যাবে যে, “পেমেন্ট সম্পন্ন হয়েছে”।
**ইভেন্ট**: পেমেন্ট হওয়ার ঘটনা।
**ইভেন্ট হ্যান্ডলার**: টাকা গ্রহণকারী কর্মচারী বা স্বয়ংক্রিয় পেমেন্ট সিস্টেম।
৩. চা তৈরি ইভেন্ট: একবার পেমেন্ট হয়ে গেলে, এখন তোমার চা তৈরি করার লোককে নোটিফিকেশন দেয়া হলো যে, চা বানানোর সময় এসেছে। এটি হলো চা তৈরি ইভেন্ট।
**ইভেন্ট**: চা বানানোর কাজ শুরু হওয়া।
**ইভেন্ট হ্যান্ডলার**: চা বানানোর দায়িত্বপ্রাপ্ত কর্মচারী।
৪. ডেলিভারি ইভেন্ট: চা বানানো শেষ হলে ডেলিভারি দেয়ার কাজ শুরু হয়। তখন এটি একটি ডেলিভারি ইভেন্ট হিসেবে গণ্য হয়। সিস্টেম জানিয়ে দেয়, “চা তৈরি হয়ে গেছে, এখন কাস্টমারকে দেয়া হবে।”
**ইভেন্ট**: ডেলিভারির কাজ শুরু হওয়া।
**ইভেন্ট হ্যান্ডলার**: ডেলিভারি লোক বা ডেলিভারি সিস্টেম।
ইভেন্ট-ড্রিভেন আর্কিটেকচারের ব্যাখ্যা:
এই পুরো ব্যবস্থায়, প্রত্যেকটি কাজ বা প্রক্রিয়া একটি নির্দিষ্ট ইভেন্ট দ্বারা ট্রিগার হয়। যখনই কোনো ইভেন্ট ঘটে, তখন তার জন্য নির্ধারিত সিস্টেম বা কর্মচারী সেই কাজটি সম্পন্ন করে। এতে প্রতিটি কাজ স্বতন্ত্রভাবে পরিচালিত হয়, এবং তারা একে অপরের সাথে স্বাধীনভাবে কাজ করতে পারে।
বাস্তব উদাহরণ:
একটি বাস্তব উদাহরণ হিসেবে, ধরো তুমি একটি ওয়েবসাইট তৈরি করছো যেখানে কাস্টমার অর্ডার দেয়ার পর একটি নোটিফিকেশন সিস্টেম কাজ করে। যেমন, কাস্টমার চা অর্ডার দিলো, একটি ইমেইল গেলো, পেমেন্ট হল, আরেকটি মেসেজ গেলো, চা তৈরি হল, কাস্টমারকে একটি আপডেট মেসেজ গেলো—এভাবেই একটি ইভেন্ট-ড্রিভেন আর্কিটেকচার তৈরি করা হয়।
ইভেন্ট-ড্রিভেন আর্কিটেকচারের সুবিধা:
- স্বতন্ত্র কাজ: প্রতিটি কাজ স্বাধীনভাবে সম্পন্ন হয়, একটির উপর আরেকটির নির্ভরতা কম থাকে।
- স্কেলিং সহজ: প্রতিটি ইভেন্ট নির্দিষ্ট হ্যান্ডলার দ্বারা সম্পন্ন হয়, তাই লোড ম্যানেজমেন্ট সহজ।
- রিয়েল-টাইম প্রসেসিং: প্রতিটি ইভেন্ট সাথে সাথেই প্রক্রিয়া করা যায়, তাই কাজ দ্রুত শেষ হয়।