System-Design-Tutorial

System Design in Bengali

সিস্টেম ডিজাইন শেখার এই যাত্রায় আমি যা শিখছি বা শিখেছি, তা এখানে সহজ বাংলায় লিপিবদ্ধ করছি। ভালো লাগলে star, watch কিংবা fork ক্লিক করে রাখতে পারেন।

System Design Wallpaper

কেন এই রিপোজিটরি?

সূচিপত্র

(চলমান)

উক্ত সূচিপত্র টি এমন ভাবে সাজানো হচ্ছে যেন আমরা একদম Basic থেকে ধীরে ধীরে Advance এর দিকে যেতে পারি। তাই আমার সাজেশন থাকবে আমরা যেন অর্ডার মেইন্টেইন করে এগোতে থাকি।

Section 1: System Design

সিস্টেম ডিজাইন হলো একটি আর্কিটেকচারাল প্রসেস, যেখানে আমরা একটি সফটওয়্যার সিস্টেমের উপাদান (Components), Modules, Interfaces এবং Data কীভাবে একে অপরের সাথে কাজ করবে তা নির্ধারণ করি। সহজ কথায়, একটি অ্যাপ্লিকেশন যখন হাজার থেকে লক্ষ লক্ষ ইউজারের চাপ নিতে প্রস্তুত করা হয়, তখন তার পেছনের পরিকল্পনাটিই হলো সিস্টেম ডিজাইন। সিস্টেম ডিজাইন এর মুলত আমাদের অ্যাপ্লিকেশান টি কে প্রচুর লোড সহ্য করার সক্ষমতা দেয় এবং কোন প্রকার কানেকশন বিচ্ছিন্নতা বা পারফরম্যান্সের অবনতি ছাড়াই কাজ করতে সাহায্য করে।

কেন সিস্টেম ডিজাইন গুরুত্বপূর্ণ? একটি ছোট অ্যাপ্লিকেশন তৈরি করা এবং সেটি কয়েক লক্ষ ইউজারের জন্য স্কেল করার মধ্যে বিশাল পার্থক্য রয়েছে। সিস্টেম ডিজাইন আমাদের শেখায়:

(আমরা এখানে শুধু মাত্র Backend Engineering related System Design নিয়ে আলোচনা করবো)

Section 2: Client Server Architecture

সিস্টেম ডিজাইনের দুনিয়ায় Client-Server Architecture হলো সবচেয়ে জনপ্রিয় মডেল। এখানে মূলত একটি সেন্ট্রাল Server থাকে যা সব রিসোর্স এবং ডেটা ম্যানেজ করে, আর অনেকগুলো Clients সেই সার্ভার থেকে সার্ভিস বা ডেটা রিকোয়েস্ট করে। ক্লায়েন্টরা সাধারণত ইউজার ইন্টারফেস বা ইন্টারঅ্যাকশন হ্যান্ডেল করে, আর সার্ভার সামলায় প্রসেসিং এবং স্টোরেজ।

Client Server Architecture

🔗 আরও পড়ুন: Client Server Architecture

Section 3: Networking Basics

Networking Basics Wallpaper

সিস্টেম ডিজাইন শেখার সময় Networking Basics খুব গুরুত্বপূর্ণ। কারণ আমরা যখন একটি scalable application design করি, তখন client কীভাবে server-এ request পাঠায়, DNS কীভাবে domain name resolve করে, IP address কীভাবে destination খুঁজে পায়, TCP/UDP কীভাবে data transport করে—এসব না বুঝলে load balancer, CDN, reverse proxy, API gateway, microservice communication, timeout, latency, retry, connection pooling—এসব concept গভীরভাবে বোঝা কঠিন হয়ে যায়।

🔗 আরও পড়ুন: Networking Basics

(চলমান)