System Design roadmap: ডেভেলপারদের জন্য বিনামূল্যের সিরিজ
একদম গোড়া থেকে system design শেখার বিনামূল্যের সিরিজ। এখানে শুরু করুন, তারপর পর্বগুলো ক্রমে পড়ুন। প্রতি সপ্তাহে নতুন পর্ব যোগ হয়।

System design হলো এমনভাবে software সিস্টেম পরিকল্পনা করার দক্ষতা, যাতে বেশি মানুষ ব্যবহার করলেও সেটি দ্রুত, নির্ভরযোগ্য ও সাশ্রয়ী থাকে। ইন্টারভিউতে এটি জিজ্ঞেস করা হয়, কিন্তু আসল প্রোডাক্ট তার প্রথম বড় দিন টিকবে কি না সেটাও এটিই ঠিক করে।
এই সিরিজ পর্ব ধরে ধরে সহজ ভাষায় এটি শেখায়, সাথে আবার কাজে লাগানো যায় এমন উদাহরণ। প্রতিটি পর্ব ছোট ও নির্দিষ্ট বিষয়ের। নতুন হলে ক্রমে পড়ুন, নয়তো দরকারি পর্বে সরাসরি যান।
পর্ব ১: গোড়ার কথা
- Scalability: vertical বনাম horizontal scaling
- Latency বনাম throughput: সিস্টেম ডিজাইনের দুই সংখ্যা
- CAP theorem: সহজ ভাষায়, উদাহরণসহ
- Load balancer: কী কাজ করে ও algorithm বাছাই
- Caching strategy: cache-aside, write-through, write-back
- CDN কী এবং কীভাবে সাইট দ্রুত করে
- SQL বনাম NoSQL: কোন database বাছবেন
- Database sharding: data একাধিক server-এ ভাগ করা
- Database replication: leader-follower, lag ও failover
- Consistent hashing: server বাড়ালে সব নড়ে না কেন
- Rate limiting: token bucket, sliding window ও বানানোর উপায়
- Message queue: কেন লাগে এবং কীভাবে ফেল করে
- API gateway: microservice সিস্টেমের সদর দরজা
- Idempotency: retry নিরাপদ করার উপায়
- Back-of-the-envelope estimation: ডিজাইনের আগে হিসাব
পর্ব ২: building block
- Redis internals: কেন দ্রুত, কীভাবে নিরাপদে ব্যবহার করবেন
- Apache Kafka: topic, partition ও consumer group
- RabbitMQ: exchange, queue ও routing
- Elasticsearch ও full-text search: inverted index কীভাবে কাজ করে
- Object storage (S3-ধাঁচ): বড় পরিসরে ফাইল রাখা
- WebSocket বনাম Server-Sent Events বনাম long polling
- gRPC বনাম REST: কোন API স্টাইল বাছবেন
- Bloom filter: অল্প memory-তে সদস্যপদ যাচাই
- Leader election: distributed সিস্টেম কীভাবে একজন নেতা বাছে
- Distributed lock: কীভাবে বানাবেন ও কেন কঠিন
- Service discovery: service-রা কীভাবে একে অপরকে খোঁজে
- CQRS: read আর write আলাদা করা
- Event sourcing: শুধু বর্তমান অবস্থা নয়, event রাখুন
- Saga pattern: microservice জুড়ে transaction
পর্ব ৩: case study
- URL shortener ডিজাইন: requirement থেকে scale
- Pastebin ডিজাইন: টেক্সট রাখা ও শেয়ার করা
- WhatsApp-এর মতো chat অ্যাপ ডিজাইন
- Instagram বা Facebook-এর মতো news feed ডিজাইন
- YouTube-এর মতো video streaming সেবা ডিজাইন
- Uber-এর মতো ride-sharing সেবা ডিজাইন
- Mobile wallet-এর জন্য payment সিস্টেম ডিজাইন
- Notification সিস্টেম ডিজাইন: push, SMS ও email
- Search autocomplete (typeahead) ডিজাইন
- Google Drive-এর মতো file storage ও sync ডিজাইন
- Double booking ছাড়া ticket booking সিস্টেম ডিজাইন
- Web crawler ডিজাইন
- E-commerce checkout সিস্টেম ডিজাইন
- Flash sale সিস্টেম ডিজাইন: ভিড়ে টিকে থাকা
- Coding contest-এর online judge ডিজাইন
- Ad click aggregation সিস্টেম ডিজাইন
পর্ব ৪: infrastructure ডিজাইন
- Distributed unique ID generator ডিজাইন (Snowflake)
- Distributed cache ডিজাইন
- Distributed key-value store ডিজাইন (Dynamo-ধাঁচ)
- Metrics monitoring ও alerting সিস্টেম ডিজাইন
সিরিজ কীভাবে ব্যবহার করবেন
- নতুন হলে: আগে ১ থেকে ৪ নম্বর পর্ব পড়ুন, তারপর বাকিগুলো ক্রমে।
- ইন্টারভিউয়ের প্রস্তুতি হলে: estimation পর্ব শেষ করুন, তারপর এই building block দিয়ে কাগজে সিস্টেমের নকশা এঁকে অনুশীলন করুন।
- প্রোডাক্ট বানালে: পরের feature ডিজাইনের সময় caching, replication ও rate limiting পর্ব হাতের কাছে রাখুন।
এরপর কী আসছে
আরও পর্ব পরিকল্পনায় আছে: আরও case study, পরিচিত সিস্টেম কীভাবে বিবর্তিত হয়েছে, এবং failure, security ও operations (postmortem, zero trust, DDoS প্রতিরক্ষা)। সিরিজ প্রতি সপ্তাহে বাড়ে।
কোনো বিষয় চান? যোগাযোগ পাতায় জানান।


