# How to approach System Design? Approaching a system design problem starts with clarifying requirements: what the system needs to do, how many users it serves, and what scale it must handle. From there, the design moves through estimating capacity, sketching a high-level architecture, and drilling into individual components like databases, caches, and load balancers. Trade-offs get revisited throughout, since no design fits every constraint at once. Visit the following resources to learn more: - [@opensource@How to approach System Design?](https://github.com/donnemartin/system-design-primer#how-to-approach-a-system-design-interview-question) - [@article@What are system design questions?](https://www.hiredintech.com/system-design) - [@article@My System Design Template](https://leetcode.com/discuss/career/229177/My-System-Design-Template) - [@video@Intro to Architecture and Systems Design Interviews](https://www.youtube.com/watch?v=ZgdS0EUmn70)