✏️ Explanatory Question

What is requirements discovery in system design?

👁 20 Views
📘 Detailed Answer
🟢 Easy
No previous question
No next question
💡

Answer with Explanation

Requirements discovery is the first phase of a system design problem, where you clarify what is actually being built before touching any architecture. The output is a short, agreed list that every later decision can be traced back to.

The four things you must leave this phase with:

  • Who - the users, roughly how many, and whether they are global or regional. Global changes the design immediately, because it forces a conversation about replication and latency.
  • What - two or three core actions the system must support, written as verbs. "Post a tweet" and "load a timeline", not "social features".
  • Scale - read to write ratio, expected growth, and peak versus average traffic. You do not need exact numbers, you need the order of magnitude, because 1,000 requests per second and 1,000,000 requests per second are different architectures.
  • Out of scope - an explicit list of what you are NOT building.

Why it comes first: every later choice - SQL or NoSQL, cache or no cache, sync or async - is only defensible with reference to a requirement. Without this phase you are guessing, and an interviewer cannot tell a good guess from a lucky one.

Functional versus non-functional. Capture both. Functional requirements say what the system does ("a user can upload a video"). Non-functional requirements say how well it must do it ("playback starts within 2 seconds at p99"). The non-functional ones usually drive the architecture more than the functional ones do.

Finish this step by repeating the agreed scope back in one or two sentences, so the rest of the design is anchored to something you both signed off on.

No previous question
No next question