What is System Design?

Lesson · Intern

Turning requirements into components that work together.

The idea

System design is deciding what pieces (servers, databases, caches, queues) you need, how they connect, and what trade-offs you accept so the product works at the scale you expect.

Functional vs non-functional

• Functional: what the system does (post a tweet, send a message).

• Non-functional: how well it does it (latency, availability, durability, consistency, cost).

Most design decisions come from non-functional requirements.

A repeatable approach

1. Clarify requirements and scope.

2. Estimate scale (users, requests/sec, storage).

3. Sketch a high-level design.

4. Deep-dive the riskiest parts.

5. Identify bottlenecks and trade-offs.