System design คือกระบวนการกำหนด สถาปัตยกรรม คอมโพเนนต์ และการโต้ตอบกัน ของระบบซอฟต์แวร์เพื่อให้ตรงตามความต้องการ โดยเฉพาะในด้าน scalability reliability และ performance มันคือเรื่องของการที่แต่ละส่วนประกอบเข้ากันอย่างไรเพื่อสร้างระบบที่ทำงานได้ในระดับสเกลใหญ่
System design ครอบคลุมอะไรบ้าง
System design = the high-level structure of a system:
→ COMPONENTS → services, databases, caches, queues, load balancers, etc.
→ how they INTERACT → data flow, communication, APIs
→ meeting REQUIREMENTS → functional (what it does) + non-functional (scale, speed,
reliability, availability)
→ about the BIG PICTURE / architecture, not individual code
