mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
27 lines
984 B
Plaintext
27 lines
984 B
Plaintext
---
|
|||
|
|
title: System Design
|
||
|
|
description: Notes for system design interviews — how to scope a problem, size it, and pick the parts that carry the load.
|
||
|
|
icon: network
|
||
|
|
sidebar:
|
||
|
|
label: Overview
|
||
|
|
---
|
||
|
|
|
||
|
|
## How an interview runs
|
||
|
|
|
||
|
|
<Steps>
|
||
|
|
<Step title="Requirements">
|
||
|
|
Pin down the functional requirements (what the system does) and the non-functional ones (latency, availability, consistency, scale) before drawing anything.
|
||
|
|
</Step>
|
||
|
|
<Step title="Estimates">
|
||
|
|
Size the traffic, storage and bandwidth with back-of-the-envelope numbers, so later choices have a reason.
|
||
|
|
</Step>
|
||
|
|
<Step title="API and data model">
|
||
|
|
Define the endpoints and the entities they read and write.
|
||
|
|
</Step>
|
||
|
|
<Step title="High-level design">
|
||
|
|
Draw the request path end to end: clients, load balancers, services, caches, stores and queues.
|
||
|
|
</Step>
|
||
|
|
<Step title="Deep dives">
|
||
|
|
Take the hardest part (a hot key, fan-out, a consistency guarantee) and work through its tradeoffs.
|
||
|
|
</Step>
|
||
|
|
</Steps>
|