1 / 10

System design · Fundamentals

Describe behavior before implementation

Functional requirements describe what the product must do: create an account, upload a photo, and let an authorized viewer retrieve it. Keep the initial list short and prioritize the core journeys; edge features can be added after the main design is sound.

Non-functional requirements describe qualities of those journeys. “Fast” is vague; “p95 reads under 200 ms at the expected peak” gives the design a target.