"Write scale করার একমাত্র রাস্তা হলো data ভাগ করা।"
স্টেজ ০৩ শেষে আমাদের data layer দ্রুত, আর একটা অংশ fail করলেও চালু থাকে। Replica গুলো read ভাগ করে নিচ্ছে, আর বেশিরভাগ read cache থেকেই serve হচ্ছে। কিন্তু সব write এখনো একটাই primary database এ যাচ্ছে। Traffic যথেষ্ট বাড়লে এটাই হবে পরের bottleneck।
এই স্টেজে আমরা data layer এর সেই শেষ বড় সমস্যাটার সমাধান করবো। Sharding দিয়ে write capacity horizontally বাড়াবো। CDN দিয়ে দূরের user দের কাছে data নিয়ে যাবো। Database Index দিয়ে query দ্রুত করবো। স্টেজ শেষে আপনি বুঝবেন, কখন কোন tool দরকার, আর কখন দরকার নেই।
০১ এই স্টেজে যা শিখবো
| সেশন | শিরোনাম | এই সেশনের লক্ষ্য |
|---|---|---|
| সেশন ০৫ | Sharding - Data ভাগ করে Write Scale করা | Write bottleneck কেন তৈরি হয়, sharding এর basic idea, shard key এর critical decision, cross-shard operation এর cost, hot shard সামলানো, আর consistent hashing দিয়ে resharding কে সহনীয় করা। |
| সেশন ০৬ | CDN ও Geographic Distribution | দূরের user দের কাছে static content নিয়ে যাওয়া। CDN কীভাবে কাজ করে, কখন দরকার, আর geographic distribution এর trade-off। |
| সেশন ০৭ | Database Indexes | কেন query slow হয়, index কীভাবে সেটা fix করে, আর index এর নিজের cost কী। |
০২ স্টেজ শেষে যা যা করতে পারবেন
- Write bottleneck চিনতে পারবেন, আর কখন replica ও cache যথেষ্ট নয়, সেটা বলতে পারবেন।
- Sharding কী, কেন করা হয়, আর কখন করা উচিত, সেটা বলতে পারবেন।
- Shard key বেছে নিতে পারবেন, আর range-based ও hash-based এর trade-off বোঝাতে পারবেন।
- Cross-shard operation (query, join, transaction) এর cost ব্যাখ্যা করতে পারবেন।
- Hot shard চিনতে পারবেন, আর system চালু রেখেই সেটা সামলাতে পারবেন।
- Consistent hashing কেন দরকার, আর এটা কীভাবে resharding সহজ করে, সেটা বলতে পারবেন।
- CDN কখন দরকার, আর static ও dynamic content এর পার্থক্য কী, সেটা বলতে পারবেন।
- Database Index কীভাবে কাজ করে, কখন যোগ করবেন, আর কখন করবেন না, সেটা বলতে পারবেন।
০৩ এর পর যা আসছে...
স্টেজ ০৪ শেষে আমাদের data layer এ read আর write দুটোই scale হয়, আর content সারা পৃথিবীর user এর কাছে পৌঁছে যায়। পরের স্টেজে আমরা synchronous request-response এর বাইরে যাবো। Message Queue দিয়ে শুরু করবো, তারপর Background Jobs ও Worker Pool, আর শেষে Event-Driven Architecture।