System Design Interview Guide
System design interview-এর লক্ষ্য কোনো “perfect architecture” বলা নয়। লক্ষ্য হলো ambiguous problem পরিষ্কার করা, scale estimate করা, একটি coherent design তৈরি করা এবং constraints অনুযায়ী trade-off defend করা। এই section component list-এর বদলে সেই decision-making process শেখায়।
Core learning path
এখানে requirements, capacity estimation, stateless scaling, data model, cache strategy, asynchronous processing এবং external contract-এর ভিত্তি তৈরি হবে।
Distributed architecture
এই অংশে consistency, partitioning, replication, coordination, service boundary এবং workload-specific architecture নিয়ে practice করুন।
Production readiness
একটি design production-ready তখনই, যখন dependency failure, overload, data loss, unauthorized access এবং incident diagnosis-এর পরিকল্পনা থাকে।
A repeatable interview framework
- Clarify: users, use cases, scope এবং success criteria নির্ধারণ করুন।
- Quantify: traffic, storage, bandwidth ও growth estimate করুন।
- Define contracts: API এবং core data model লিখুন।
- Draw the flow: client থেকে storage পর্যন্ত critical request path দেখান।
- Find pressure points: hot key, large fan-out, slow dependency, queue backlog ও regional failure বিবেচনা করুন।
- Choose deliberately: consistency, latency, availability, cost ও complexity-এর trade-off বলুন।
- Operate: metrics, logs, traces, alerts, deployment ও recovery plan যোগ করুন।
How to practice
প্রথম pass-এ 35–45 মিনিটের মধ্যে end-to-end design শেষ করুন। দ্বিতীয় pass-এ একটি subsystem—যেমন feed generation, rate limiter বা distributed cache—deep dive করুন। Answer review করার সময় assumptions স্পষ্ট ছিল কি না, numbers design-কে influence করেছে কি না এবং প্রতিটি major choice-এর alternative বলা হয়েছে কি না যাচাই করুন।