Publishers - Subscriber Model (Pub/Sub)
Pub/Sub হলো একটি মেসেজিং প্যাটার্ন যেখানে মেসেজ প্রেরক (Publisher) সরাসরি প্রাপকের (Subscriber) কাছে মেসেজ পাঠায় না। এর পরিবর্তে মেসেজগুলো একটি ইন্টারমিডিয়েট 'Topic' বা ক্লাসিফিকেশনে পাঠানো হয়।
1. কিভাবে কাজ করে?
- Publisher (প্রকাশক): এরা শুধুমাত্র মেসেজ তৈরি করে এবং একটি নির্দিষ্ট টপিকে (Topic) পাঠিয়ে দেয়। তারা জানে না এই মেসেজটি কে পড়বে।
- Topic (বিষয়): এটি একটি ইন্টারমিডিয়েট চ্যানেল যেখানে পাবলিশাররা মেসেজ পুশ করে।
- Subscriber (গ্রাহক): যারা নির্দিষ্ট কোনো টপিকে সাবস্ক্রাইব করে থাকে, তারা সেই টপিকে নতুন মেসেজ আসা মাত্রই তা রিসিভ করে।
2. Pub/Sub এর সুবিধা
- Loose Coupling: পাবলিশার এবং সাবস্ক্রাইবার একে অপরকে চেনে না। ফলে সিস্টেমের কোনো পার্ট পরিবর্তন করলে অন্য পার্টে প্রভাব পড়ে না।
- Scalability: আপনি চাইলেই যেকোনো সময় নতুন সাবস্ক্রাইবার যোগ করতে পারেন কোনো কোড চেঞ্জ ছাড়াই।
- Asynchronous: পাবলিশার মেসেজ পাঠিয়ে নিজের কাজ চালিয়ে যেতে পারে, সাবস্ক্রাইবার তার সুবিধামতো সমযডেটা প্রসেস করবে।
3. বাস্তব জীবনের উদাহরণ
- Notification System: ইউটিউবে যখন কেউ ভিডিও আপলোড করে (Publisher), তখন সেই চ্যানেলের সব সাবস্ক্রাইবারদের কাছে নোটিফিকেশন যায়।
- Payment Updates: একটি অনলাইন শপে পেমেন্ট সাকসেসফুল হলে পাবলিশার একটি মেসেজ পাঠায়। এরপর সাবস্ক্রাইবাররা (যেমন: ইনভয়েস জেনারেটর, ইমেইল সার্ভিস, শিপিং সার্ভিস) সেই মেসেজটি পেয়ে নিজ নিজ কাজ শুরু করে।
- Live Updates: ফুটবল ম্যাচের লাইভ স্কোরের জন্য হাজার হাজার ইউজার (Subscribers) স্কোর টপিকে কানেক্টেড থাকে।
4. জনপ্রিয় Pub/Sub টুলস
- Google Cloud Pub/Sub
- Redis Pub/Sub
- Apache Kafka (এটি বড় স্কেলে পাব/সাব কাজ করে)
- AWS SNS (Simple Notification Service)
IMPORTANT
বড় এবং মাইক্রোসার্ভিস ভিত্তিক সিস্টেমে ডাটা সিনক্রোনাইজেশন এবং ইভেন্ট-ড্রিভেন আর্কিটেকচারের জন্য Pub/Sub মডলে একটি ব্রিলিয়ান্ট সলিউশন। এটি সিস্টেমকে অনেক বেশি নমনীয় (Flexible) করে তোলে।