ধাপ ৪ - উপসংহার (Wrap up)
এই অধ্যায়ে, আমরা একটি চ্যাট সিস্টেম আর্কিটেকচার উপস্থাপন করেছি যা ১-এর-সাথে-১ চ্যাট এবং ছোট গ্রুপ চ্যাট উভয়ই সমর্থন করে। ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম যোগাযোগের জন্য ওয়েবসকেট ব্যবহার করা হয়েছে। চ্যাট সিস্টেমে নিচের উপাদানগুলো রয়েছে: রিয়েল-টাইম মেসেজিংয়ের জন্য চ্যাট সার্ভার, অনলাইন উপস্থিতি পরিচালনার জন্য প্রেজেন্স সার্ভার, পুশ নোটিফিকেশন পাঠানোর জন্য পুশ নোটিফিকেশন সার্ভার, চ্যাট হিস্ট্রি স্থায়িত্বের জন্য কী-ভ্যালু স্টোর এবং অন্যান্য কার্যকারিতার জন্য API সার্ভার।
যদি ইন্টারভিউয়ের শেষে আপনার কাছে অতিরিক্ত সময় থাকে, তবে এখানে অতিরিক্ত আলোচনার বিষয় রয়েছে:
- ফটো এবং ভিডিওর মতো মিডিয়া ফাইল সমর্থন করার জন্য চ্যাট অ্যাপটি প্রসারিত করুন। মিডিয়া ফাইলগুলো টেক্সটের তুলনায় আকারে উল্লেখযোগ্যভাবে বড়। কম্প্রেশন, ক্লাউড স্টোরেজ, এবং থাম্বনেইল নিয়ে আলোচনা করা আকর্ষণীয় বিষয়।
- এন্ড-টু-এন্ড এনক্রিপশন। Whatsapp মেসেজের জন্য এন্ড-টু-এন্ড এনক্রিপশন সমর্থন করে। শুধুমাত্র প্রেরক এবং প্রাপক মেসেজ পড়তে পারবে। আগ্রহী পাঠকদের রেফারেন্স ম্যাটেরিয়ালের নিবন্ধটি দেখা উচিত [9]।
- ক্লায়েন্ট-সাইডে মেসেজ ক্যাশিং করা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা ট্রান্সফার কমাতে কার্যকর।
- লোড টাইম উন্নত করুন। Slack ভালো লোড টাইমের জন্য ব্যবহারকারীদের ডেটা, চ্যানেল ইত্যাদি ক্যাশ করতে একটি ভৌগলিকভাবে বিতরণ করা নেটওয়ার্ক তৈরি করেছে [10]।
- এরর হ্যান্ডলিং।
- চ্যাট সার্ভার এরর। একটি চ্যাট সার্ভারে শত শত হাজার, বা আরও বেশি স্থায়ী সংযোগ থাকতে পারে। যদি একটি চ্যাট সার্ভার অফলাইন হয়ে যায়, সার্ভিস ডিসকভারি (Zookeeper) ক্লায়েন্টগুলোর সাথে নতুন সংযোগ স্থাপনের জন্য একটি নতুন চ্যাট সার্ভার প্রদান করবে।
- মেসেজ রিসেন্ট মেকানিজম। মেসেজ পুনরায় পাঠানোর জন্য রিট্রাই (retry) এবং কিউইং (queueing) সাধারণ কৌশল।
এতদূর আসার জন্য অভিনন্দন! এখন নিজেকে একটি চাপড় দিন। দারুণ কাজ করেছেন!