ব্যবহারকারীরা রিয়েল টাইমে বার্তা দেখতে পায় না, বিজ্ঞপ্তিগুলি দেরিতে আসে, এবং অনলাইন চ্যাট ধীর? REST এর জন্য উপযুক্ত নয় — WebSocket বা SSE প্রয়োজন। দ্বিমুখী যোগাযোগ চ্যানেল, তাত্ক্ষণিক বিতরণ, Redis Pub/Sub এর মাধ্যমে স্কেলিং। কাজ করে যেখানে REST শক্তিহীন।
real-time API এর ডেভেলপমেন্ট — এমন সিস্টেম তৈরি করা যেখানে ডেটা তাত্ক্ষণিকভাবে বিতরণ করা হয়। চ্যাট, বিজ্ঞপ্তি, সহযোগিতামূলক সম্পাদনা, স্টক কোট, অনলাইন গেম — যে কোনো পরিস্থিতি যেখানে বার্তা বিতরণের গতি গুরুত্বপূর্ণ।
WebSocket — TCP এর উপর পূর্ণ দ্বিমুখী যোগাযোগ চ্যানেল। ন্যূনতম বিলম্ব, পুনঃস্থাপন ছাড়া স্থায়ী সংযোগ
Server-Sent Events (SSE) — সার্ভার থেকে ব্রাউজারে একমুখী ইভেন্ট ট্রান্সমিশনের জন্য লাইটওয়েট প্রোটোকল। বিজ্ঞপ্তি এবং আপডেট ফিডের জন্য
স্কেলিং — অনুভূমিক স্কেলিংয়ের জন্য Redis Pub/Sub বা RabbitMQ এর মাধ্যমে WebSocket। একক নোডে হাজার হাজার সমবর্তী সংযোগ।
নিরাপত্তা — WSS (WebSocket Secure), সংযোগ স্থাপনে প্রমাণীকরণ, আগত বার্তা যাচাইকরণ
WebSocket · SSE · Pub/Sub · Redis · WSS
রিয়েল-টাইম বিস্তৃত কাজ কভার করে। সাধারণ বিজ্ঞপ্তি থেকে বহু-ব্যবহারকারী সহযোগিতা পর্যন্ত। আমরা প্রতিটি নির্দিষ্ট পরিস্থিতির জন্য প্রোটোকল নির্বাচন করি।
তাত্ক্ষণিক বার্তা বিতরণের জন্য WebSocket। স্ট্যাটাস সমর্থন: অনলাইন, অফলাইন, টাইপ করছে। বার্তার ইতিহাস, ফাইল, প্রতিক্রিয়া। গ্রুপ এবং ব্যক্তিগত চ্যাট।
ব্রাউজারে লাইটওয়েট ইভেন্ট বিতরণের জন্য SSE। পুশ বিজ্ঞপ্তি WebSocket এর মাধ্যমে। ধরন, অগ্রাধিকার, ব্যবহারকারী অনুসারে ফিল্টারিং। গ্যারান্টিযুক্ত বিতরণ।
সহযোগিতামূলক সম্পাদনার জন্য Operational Transform। কার্সার সিঙ্ক্রোনাইজেশনের জন্য WebSocket। দ্বন্দ্ব সমাধানের জন্য OT অ্যালগরিদম বা CRDT।
রিয়েল-টাইম হল যখন ব্যবহারকারী "কেন নীরবতা" ভাবার চেয়ে দ্রুত বার্তা পায়। আমরা এমন সিস্টেম তৈরি করি যেখানে বিলম্ব মিলিসেকেন্ডে পরিমাপ করা হয়, সেকেন্ডে নয়।
রিয়েল-টাইম সিস্টেম শুধু WebSocket নয়। আমরা এমন আর্কিটেকচার ডিজাইন করি যা হাজার হাজার সমবর্তী সংযোগ সহ্য করে এবং প্রতিটি বার্তার বিতরণ নিশ্চিত করে।
সংযোগ আর্কিটেকচার — WebSocket বনাম SSE বনাম long-polling। আমরা কাজের জন্য প্রোটোকল নির্বাচন করি। আমরা গ্রুপ মেসেজিংয়ের জন্য রুম এবং চ্যানেল ডিজাইন করি।
স্কেলিং — নোডের মধ্যে বার্তা বিনিময়ের জন্য Redis Pub/Sub। শেয়ার্ড স্টেট সহ WebSocket সার্ভারের অনুভূমিক স্কেলিং।
Node.js এ রিয়েল-টাইম — Socket.IO বা ws সহ Node.js এ WebSocket সার্ভার। REST API এবং বিদ্যমান ব্যাকএন্ডের সাথে ইন্টিগ্রেশন।
বিতরণ গ্যারান্টি — at-most-once, at-least-once, exactly-once। প্রাপ্তির নিশ্চিতকরণ, সংযোগ হারালে পুনঃপ্রেরণ।
মনিটরিং — সক্রিয় সংযোগ, থ্রুপুট, বিলম্ব। রিয়েল-টাইম মেট্রিক্সের জন্য Prometheus + Grafana।
REST + WebSocket হাইব্রিড — অনুরোধ-প্রতিক্রিয়ার জন্য REST এবং পুশ বিজ্ঞপ্তির জন্য WebSocket। আধুনিক অ্যাপ্লিকেশনের জন্য সর্বোত্তম আর্কিটেকচার।
Redis Pub/Sub WebSocket সার্ভারগুলিকে অনুভূমিকভাবে স্কেল করার অনুমতি দেয়। একটি নোডে পাঠানো বার্তা Redis এর মাধ্যমে তাত্ক্ষণিকভাবে অন্য সব নোডে বিতরণ করা হয়। হাজার হাজার সংযোগ — একটি কিউ।
real-time API অর্ডার করুন — এমন একটি সিস্টেম পান যেখানে ডেটা তাত্ক্ষণিকভাবে বিতরণ করা হয়, সংযোগগুলি নির্ভরযোগ্য এবং স্কেলিং আর্কিটেকচারে নির্মিত।
আমরা at-least-once এবং exactly-once সিম্যান্টিক্স প্রয়োগ করি। অস্থায়ী সংযোগ বিচ্ছিন্নতার সময়ও বার্তা পৌঁছাবে — নিশ্চিতকরণ কিউ এবং পুনঃচেষ্টা প্রক্রিয়া।
Redis Pub/Sub, WebSocket সার্ভারের অনুভূমিক স্কেলিং। প্রতি ইন্সট্যান্সে হাজার হাজার সমবর্তী সংযোগ, প্রতি ক্লাস্টারে মিলিয়ন।
Grafana ড্যাশবোর্ড: সক্রিয় সংযোগ, থ্রুপুট, বিলম্ব। সংযোগের মান কমলে Telegram এ সতর্কতা।
রিয়েল-টাইম হল যখন ব্যবহারকারী অপেক্ষা করে না। আমরা এমন সিস্টেম তৈরি করি যেখানে বিলম্ব মিলিসেকেন্ডে পরিমাপ করা হয় এবং সংযোগ হারালেও বার্তা বিতরণ নিশ্চিত।