API Design Examples
Basics
Find & understand system requirements, constraints and bottlenecks, as well as trade-offs.
- good questions are important, collaborate, lead, do not overengineer, think of your timing.
back-of-the-enveloppe estimations: 1 byte = 8 bits, an ASCII is 1 byte.
- QPS, peak QPS, storage, cache, n of servers, …
0s | approximate | name |
---|---|---|
3 | 1 K | 1 Kb |
6 | 1 Mi | 1 Mb |
9 | 1 Bi | 1 Gb |
12 | 1 Tri | 1 Tb |
15 | 1 Quad | 1 Pb |
If we have 45-60 mins:
- (3-10 mins) Understand the problem and establish design scope:
- What specific feature we are ginong to build - What is the most important feature of the product?
- How many users, how many daily active users (DAU)?
- How fast the company plans to scale up + expected scaling 3,6,12 months?
- What is the tech stack and what existing services you might leverage to simplify the design?
- (10-15 mins) Process high-level design and get byu-in:
- Make a bluebrint and ask for feedback - like it is a team mate. Involve the interviewer in the discussion.
- Draw a small diagram, make rough estimations.
- Idenitify and prioritize components in the architecture.
- Suggest multiple approaches, and together choose one if required.
- (10-25 mins) Design deep dive: if asked, design the most critical component first.
- (3-5 mins) Wrap up: overview, error cases, monitoring + logs, deploument, scale handling (from 1M to 100M DAU)