স্টেজ ০৯

স্টেজ ০৯ - Real-World System Designs

এই স্টেজের লক্ষ্য: এতদিন আমরা একটা একটা করে tool শিখেছি: load balancer, cache, shard, queue, CDN, consensus, circuit breaker। এই শেষ স্টেজে সেগুলো জোড়া লাগাবো। বাস্তবের ছয়টা পরিচিত system শূন্য থেকে design করবো, ঠিক যেভাবে একটা system design interview তে করতে হয়। প্রথমে requirement, তারপর হিসাব, তারপর design, তারপর কোথায় ভাঙতে পারে আর কেন।

"ভালো design মানে সব প্রশ্নের উত্তর জানা নয়। ভালো design মানে ঠিক প্রশ্নটা আগে করা।"

স্টেজ ০৮ শেষে আপনার ঝুলিতে system design এর প্রায় সব মূল tool আছে। কিন্তু tool চেনা আর একটা পুরো system design করা এক জিনিস নয়। আসল দক্ষতা হলো, একটা অস্পষ্ট প্রশ্ন (“একটা YouTube বানান”) পেয়ে সেটাকে ছোট ছোট সিদ্ধান্তে ভাগ করা।

এই স্টেজের design গুলো সহজ থেকে কঠিনের দিকে সাজানো, আর প্রতিটা আগেরটার উপর দাঁড়িয়ে থাকে। শুরু একটা URL shortener দিয়ে, যেখানে একটা key আর একটা cache ই যথেষ্ট। তারপর rate limiter আর search, তারপর feed এর fan-out, chat এর real-time connection, YouTube এর বিশাল data, আর শেষে Uber, যেখানে আগের প্রায় সবকিছু একসাথে লাগে।

এই স্টেজের প্রতিটা সেশন একই কাঠামো মেনে চলে। আগে বুঝবো, system টা আসলে কী করবে। তারপর হিসাব করবো, কত user, কত data। তারপর ধাপে ধাপে design দাঁড় করাবো, আর প্রতিটা সিদ্ধান্তে দেখাবো আগের কোন সেশনের ধারণা কাজে লাগছে। শেষে দেখবো, design টা কোথায় চাপে পড়ে, আর তখন কী করতে হয়।

০১ এই স্টেজে যা শিখবো

সেশন শিরোনাম এই সেশনের লক্ষ্য
সেশন ২৩ URL Shortener / Pastebin Design Requirements আর estimation থেকে শুরু করে base62, hash collision, key generation service, 301 বনাম 302, read-heavy caching, expiry, custom alias আর Pastebin এর object storage পর্যন্ত একটা পূর্ণাঙ্গ design।
সেশন ২৪ Rate Limiter / Search Design Redis এ atomic counter দিয়ে distributed rate limiter, sliding window, fail open বনাম fail closed, inverted index, Bangla-English tokenization, async indexing আর trie দিয়ে typeahead।
সেশন ২৫ Twitter / Instagram Feed Home timeline, fan-out on write বনাম fan-out on read, celebrity problem আর hybrid approach, Redis timeline cache, cursor pagination, object storage আর CDN, আর like counter ও ranking।
সেশন ২৬ WhatsApp / Chat Design HTTP polling এর সীমা, WebSocket আর stateful connection server, registry দিয়ে routing, sent/delivered/read tick, offline storage আর push notification, per-chat seq দিয়ে ordering, group fan-out, presence আর E2E encryption।
সেশন ২৭ YouTube / Netflix Design Requirement আর back-of-envelope estimation দিয়ে শুরু, তারপর upload pipeline আর transcoding, HLS/DASH দিয়ে adaptive bitrate, জনপ্রিয় আর long-tail video র জন্য CDN, আর লাখো view গোনার কৌশল।
সেশন ২৮ Uber / Maps Design Driver location এর write load, lat/lng এ SQL কেন ধীর, geohash আর quadtree, ETA দিয়ে matching, trip state machine, আর hot area ও surge pricing।

০২ স্টেজ শেষে যা যা করতে পারবেন

০৩ এর পর যা আসছে...

এটাই শেষ স্টেজ। এখানে পৌঁছানো মানে আপনি একটা server থেকে শুরু করে পৃথিবীজোড়া system পর্যন্ত পুরো পথটা হেঁটে এসেছেন। এখন সবচেয়ে ভালো কাজ হলো নিজে নিজে design করা: একটা পরিচিত app বেছে নিন, এই স্টেজের ধাপগুলো মেনে কাগজে design করুন, তারপর আগের সেশনগুলোর সাথে মিলিয়ে দেখুন।