System Design main reqs of system
reduce scope of problem
v. 0.1 - Mar 2022
Interview get interviewer buy-in
consistency vs availability Relational (ACID, normalization, indexing)*
different levels tradeoffs NoSQL (KV store, Blob, Timeseries, Graph)
hashing algorithms Horizontal scaling vs sharding
eviction policy (LRU, etc) Write Master + Read Replicas
cache hit / miss Multi-tenancy vs Single-tenancy
session persistence MapReduce (distributed querying)
ETL pipeline (extract, transform, load)
Features
types / roles, demographics
Caching 1 Data
Model
current quantity & future-proofing
peaks (times of day, days of year)
8 3 Redundancy, Five 9s
Fault tolerance, circuit breakers
frequency, avg duration Leader election (consensus algo)
web vs mobile Container orchestration
accessibility / needs Users 2 7 Availability / Side cars / service mesh
Observability (Logs, Metrics,
Performance Microservices Tracing, Alerts)
& Scalability
regions, CDNs
distance, RTT Geography 4 10 Messaging
network latency & Latency TCP vs UDP
DNS lookups Queues (FIFO, in-order)
Pull vs Push
9 6 Polling vs Streaming
Publish-Subscribe
Reverse proxy (request sorting)
Proxies 5 APIs & Idempotency
Security
Forward proxy (hacking, VPN)
Load Balancers (Round robin, Least Server
Outstanding Requests, path-based; Capacity
level 4 vs level 7)
SOAP, REST, gRPC, GraphQL*
(Tier-based) rate limiting
Attacks: DoS, DDoS, XSS, MITM*
*ACRONYMS Authentication vs authorization, JWT
CPU, RAM, Storage Symmetric vs Asymmetric Encryption
ACID: atomicity, consistency, isolation, durability
Vertical scaling TLS/HTTPS, SSL certificates
SOAP: simple object access protocol
HDD vs SSD CRUD, HTTP methods, pagination
REST: representational state transfer
Requests/sec, QPS Static vs Dynamic Configuration
DoS: denial of service; DDoS: distributed ...
Parallelization / threads
XSS: cross-site scripting (form injection)
VMs, partitions
MITM: man in the middle (interception)
Source: [Link], 2022