Gathering Functional vs Non-Functional Requirements
Deconstruct vague interview prompts into concrete technical contracts: Functional requirements (Rule of 3 core flows), Non-functional constraints (Availability, Latency, Consistency, Durability), and explicit out-of-scope boundaries.
System Design Requirements Scoping Matrix 📋
Decomposing ambiguous problem statements into functional flows, quantified non-functional constraints, and clear non-goals.
01.1. The Art of Scoping: Turning Ambiguity into Engineering Contracts
When an interviewer asks you to "Design Instagram", they are deliberately giving you an impossible task. Real-world Instagram has thousands of microservices, hundreds of features (Stories, Reels, DMs, Shopping, Ads, Live Streaming, Filters, Graph Search), and thousands of engineers maintaining it.
Candidates fail this initial phase in one of two ways:
- The Passive Trap: Asking the interviewer 20 open-ended questions like "What features do you want?" or "What database should I use?" without proposing anything.
- The Runaway Scope Trap: Attempting to design everything at once, resulting in a shallow, cluttered diagram with zero technical depth on any single component.
Senior and Staff candidates act like Principal Architects: they immediately propose a crisp, high-value technical scope, establish concrete Service Level Objectives (SLOs), and secure the interviewer's buy-in within the first 4 to 5 minutes.
02.2. Functional Requirements: The "Rule of 3" Core Flows
Always constrain functional scope to exactly 2 to 3 primary user journeys. Any more will dilute your 45-minute time budget; fewer will make the architecture trivial.
Every system design problem decomposes into three foundational interactions:
- The Ingress / Ingestion Flow (Write Path): How does data enter the system? (e.g., Upload a photo, publish a tweet, book a ride, shorten a URL).
- The Egress / Consumption Flow (Read Path): How do users access data at scale? (e.g., Generate personalized home feed, stream 4K video, query ride status, redirect short URL).
- The Relational / Analytical Interaction: How do entities interact? (e.g., Follow/Unfollow graph, geospatial driver matching, view count aggregation).
Comparison Across Classic Interview Prompts:
| System Design Prompt | Core Flow 1 (Write) | Core Flow 2 (Read) | Core Flow 3 (Interaction) |
|---|---|---|---|
| Twitter / X | Post tweet (280 chars + media) | Render 800-tweet Home Timeline | Follow / Unfollow user graph |
| Uber / Lyft | Driver sends real-time GPS location | Rider requests ride & gets ETA | Match rider to nearest available driver |
| Google Drive / Dropbox | Upload & sync chunked file blocks | Download & view file versions | Share file / folder permissions |
| YouTube / Netflix | Creator uploads raw video file | Viewer streams adaptive bitrate video | Search video catalog by keywords |
| TinyURL / Bitly | Create short alias for long URL | Redirect short alias (302 / 301) | Real-time click analytics count |
03.3. Non-Functional Requirements: Quantifying System Physics & SLOs
Non-functional requirements (NFRs) dictate the physical constraints and architectural trade-offs of your distributed system. Never list vague buzzwords like "The system must be fast and reliable". Instead, define quantitative engineering targets:
1. Latency & Performance Targets (SLOs):
- Read Path Latency:
p99 < 100 msfor API gateway responses;p95 < 50 msfor cached timeline queries. - Write Path Latency:
p99 < 500 msfor media uploads and post persistence. - Propagation / Fan-Out Delay: Video or tweet visible to followers within
5 seconds(p99).
2. Availability vs. Consistency (CAP / PACELC):
- High Availability (AP Systems): Social feeds, video comments, and click analytics prioritize
99.99\%uptime (maximum52.6 minutesof downtime per year). Eventual consistency is acceptable; a user seeing a tweet 2 seconds late is non-critical. - Strong Consistency (CP / ACID Systems): Payment processing, ride fare calculation, seat reservation, and inventory management strictly require strong serializable consistency to prevent double-spending or double-booking.
3. Durability & Fault Tolerance:
- Zero Data Loss: Uploaded photos, financial transactions, and user metadata must achieve
99.999999999\%(11 9's) durability via cross-region replication (e.g., AWS S3 / Google Cloud Storage multi-AZ).
4. Scale & Workload Skew:
- Traffic Volume:
500M DAU, generating100,000 Read QPSand1,000 Write QPS. - Read-to-Write Ratio: Highly read-heavy workload (
100:1read-to-write ratio), requiring aggressive multi-tier caching (Redis, CDN) rather than write-optimized LSM-tree storage.
04.4. Defining Explicit Out-of-Scope Boundaries (Non-Goals)
Explicitly stating what you will not build is the single best way to protect your time budget and demonstrate senior engineering maturity. In production engineering, setting non-goals prevents scope creep; in interviews, it prevents derailment.
Standard Out-of-Scope Declarations:
- User Authentication & Signup: State that JWT token validation is handled upstream at the API Gateway.
- Payment Processing & Invoicing: Outsource to Stripe/PCI-compliant external gateways unless the question is explicitly "Design Stripe".
- Direct Messaging & Chat: DMs require WebSockets, long polling, and Cassandra inbox tables—completely distinct from public feed generation.
- Recommendation ML Algorithms: Acknowledge machine learning scoring as an external black-box model ranking service, focusing on the distributed data pipeline that feeds it.
- Analytics & Billing Dashboards: Treat offline MapReduce/Spark data warehousing as a separate asynchronous pipeline.
05.5. Conversational Scripts: Word-for-Word Alignment Phrases
Use these exact conversational frameworks to take control of the scoping phase:
The 60-Second Opening Scoping Pitch: "Thank you for the prompt. To make sure we design a robust architecture and dive deep into the hardest distributed challenges, I would like to propose the following scope:
For Functional Requirements, I suggest we focus on three core user flows:
- Users can upload photos with captions.
- Users can follow other users.
- Users can view a chronological and algorithmic home feed of followed posts.
For Non-Functional Requirements, I am targeting:
- High availability (
99.99\%) with eventual consistency on the feed.- Low read latency (
p99 < 150 ms).- Scale of
500M DAUwith a100:1read-to-write ratio.And to ensure we have adequate time for feed fan-out and sharding, I propose treating Direct Messaging, Stories, and Image Editing as Out of Scope for today. Does this scope align with what you'd like to evaluate?"
⚖️Architectural Trade-offs & Production Realities
Architectural Advantages
- Locks in clear evaluation criteria before drawing a single architectural component
- Protects candidate from scope creep and premature interviewer interruptions
- Demonstrates real-world engineering leadership, requirements engineering, and product sense
Trade-offs & Constraints
- Proposing a scope that is too narrow might cause the interviewer to ask for an extra feature; easily solved by adding one secondary flow on request
- Must avoid monologuing during scoping—always confirm alignment before proceeding to capacity math
At Amazon, engineering initiatives require a PR/FAQ (Press Release & FAQ) that clearly defines customer requirements and non-goals before design reviews. At Stripe, engineering proposals begin with API Request-For-Comments (RFCs) that formally specify functional contracts and SLO targets.
🎯 Staff+ Engineering Takeaways
- Limit functional scope to the Rule of 3: Core Write Flow, Core Read Flow, and Core Interaction/Graph Flow.
- Quantify non-functional requirements with concrete numbers: p99 latency, availability nines, durability, and read/write ratios.
- Explicitly declare out-of-scope non-goals to safeguard your 45-minute whiteboard session.
- Always obtain explicit confirmation from your interviewer before moving to Step 2.
Topic Knowledge Assessment 🧠
Step through 3 scenario questions to test your staff-level grasp.
When scoping "Design Twitter", which combination of functional requirements represents the optimal 45-minute interview scope?
How clear and staff-actionable was this system breakdown?