← System Design learning path
System Design · Module 1 of 10

What is system design?

Design large systems that are scalable, reliable and maintainable.

📖 Key ideas

  1. System design plans components, data flow and infrastructure for an application.
  2. Functional requirements: what it does; non-functional: scale, latency, availability.
  3. Trade-offs are central: no design is perfect for everything.
  4. Common interview topic for mid/senior engineers.
  5. Start simple, then evolve as load grows.
💡 Real-life example: System design is city planning: roads (network), buildings (servers), water tanks (databases) built to handle growth.
ScalabilityHandling growth in load
AvailabilityPercentage of time a system works
LatencyTime for a request
Trade-offGaining one quality by giving up another