Skip to content

Publishers - Subscriber Model (Pub/Sub)

Pub/Sub হলো একটি মেসেজিং প্যাটার্ন যেখানে মেসেজ প্রেরক (Publisher) সরাসরি প্রাপকের (Subscriber) কাছে মেসেজ পাঠায় না। এর পরিবর্তে মেসেজগুলো একটি ইন্টারমিডিয়েট 'Topic' বা ক্লাসিফিকেশনে পাঠানো হয়।

1. কিভাবে কাজ করে?

  1. Publisher (প্রকাশক): এরা শুধুমাত্র মেসেজ তৈরি করে এবং একটি নির্দিষ্ট টপিকে (Topic) পাঠিয়ে দেয়। তারা জানে না এই মেসেজটি কে পড়বে।
  2. Topic (বিষয়): এটি একটি ইন্টারমিডিয়েট চ্যানেল যেখানে পাবলিশাররা মেসেজ পুশ করে।
  3. Subscriber (গ্রাহক): যারা নির্দিষ্ট কোনো টপিকে সাবস্ক্রাইব করে থাকে, তারা সেই টপিকে নতুন মেসেজ আসা মাত্রই তা রিসিভ করে।

2. Pub/Sub এর সুবিধা

  • Loose Coupling: পাবলিশার এবং সাবস্ক্রাইবার একে অপরকে চেনে না। ফলে সিস্টেমের কোনো পার্ট পরিবর্তন করলে অন্য পার্টে প্রভাব পড়ে না।
  • Scalability: আপনি চাইলেই যেকোনো সময় নতুন সাবস্ক্রাইবার যোগ করতে পারেন কোনো কোড চেঞ্জ ছাড়াই।
  • Asynchronous: পাবলিশার মেসেজ পাঠিয়ে নিজের কাজ চালিয়ে যেতে পারে, সাবস্ক্রাইবার তার সুবিধামতো সমযডেটা প্রসেস করবে।

3. বাস্তব জীবনের উদাহরণ

  • Notification System: ইউটিউবে যখন কেউ ভিডিও আপলোড করে (Publisher), তখন সেই চ্যানেলের সব সাবস্ক্রাইবারদের কাছে নোটিফিকেশন যায়।
  • Payment Updates: একটি অনলাইন শপে পেমেন্ট সাকসেসফুল হলে পাবলিশার একটি মেসেজ পাঠায়। এরপর সাবস্ক্রাইবাররা (যেমন: ইনভয়েস জেনারেটর, ইমেইল সার্ভিস, শিপিং সার্ভিস) সেই মেসেজটি পেয়ে নিজ নিজ কাজ শুরু করে।
  • Live Updates: ফুটবল ম্যাচের লাইভ স্কোরের জন্য হাজার হাজার ইউজার (Subscribers) স্কোর টপিকে কানেক্টেড থাকে।

4. জনপ্রিয় Pub/Sub টুলস

  1. Google Cloud Pub/Sub
  2. Redis Pub/Sub
  3. Apache Kafka (এটি বড় স্কেলে পাব/সাব কাজ করে)
  4. AWS SNS (Simple Notification Service)

IMPORTANT

বড় এবং মাইক্রোসার্ভিস ভিত্তিক সিস্টেমে ডাটা সিনক্রোনাইজেশন এবং ইভেন্ট-ড্রিভেন আর্কিটেকচারের জন্য Pub/Sub মডলে একটি ব্রিলিয়ান্ট সলিউশন। এটি সিস্টেমকে অনেক বেশি নমনীয় (Flexible) করে তোলে।

Released under the MIT License.