Limited Time Offer:Up to 20% off Hello Interview Premium
Up to 20% off Hello Interview Premium 🎉
Hello Interview
Learn System Design
Introduction
How to Prepare
Delivery Framework
Core Concepts
Key Technologies
Common Patterns
Question Breakdowns
Networking Essentials
Quick Reference
API Design
Data Modeling
Caching
Sharding
Consistent Hashing
CAP Theorem
Database Indexing
Numbers to Know
Bitly
Dropbox
Local Delivery Service
Ticketmaster
FB News Feed
Tinder
LeetCode
WhatsApp
Rate Limiter
FB Live Comments
FB Post Search
YouTube Top K
Uber
YouTube
Web Crawler
Ad Click Aggregator
News Aggregator
Yelp
Strava
Online Auction
Price Tracking Service
Instagram
Robinhood
Google Docs
Distributed Cache
Job Scheduler
Payment System
Metrics Monitoring
ChatGPT
Real-time Updates
Dealing with Contention
Multi-step Processes
Scaling Reads
Scaling Writes
Handling Large Blobs
Managing Long Running Tasks
Redis
Elasticsearch
Kafka
API Gateway
Cassandra
DynamoDB
PostgreSQL
Flink
ZooKeeper
Time Series Databases
Data Structures for Big Data
Vector Databases
Vote For New Content
Pricing
Sign in / Sign up
Search
⌘K
Pricing

Tutor

Hello InterviewQuick Reference
Full Article
Quick Reference

Networking Essentials

Protocol Choices

Transport choice

Transport choice compares TCP, which is the default for most systems because it provides reliable ordered delivery with overhead, and UDP, which is fast and connectionless but gives no delivery or ordering guarantees.
  • TCP: Default for most designs; reliable, ordered delivery with flow and congestion control.
  • UDP: Use when low latency matters and some loss is fine; no delivery or ordering guarantees.

API style

API style compares REST, the default public API choice that is simple and flexible but less efficient, GraphQL, which avoids over-fetching and under-fetching for flexible clients, and gRPC, which is a binary HTTP/2 RPC protocol best for fast internal service communication.
  • REST: Default for interviews and public APIs; simple, flexible, but less performant than binary RPC.
  • GraphQL: Use for flexible clients with changing views; solves over-fetching and under-fetching.
  • gRPC: Use for internal service calls when performance matters; binary and stronger typed than JSON.

Realtime channel

Realtime channel compares SSE, which is server-to-client streaming over one HTTP response with reconnect semantics, WebSockets, which are persistent bidirectional connections that need stateful infrastructure support, and WebRTC, which is peer-to-peer over UDP and best kept to audio or video calling.
  • SSE: Use for server push over HTTP; good for notifications, but connections get closed and must reconnect.
  • WebSockets: Use for high-frequency bidirectional traffic; avoid unless persistent stateful connections are needed.
  • WebRTC: Use mainly for audio/video calling; niche, peer-to-peer, and painful to get right.

Load balancing

Where balancing happens

Where balancing happens includes client-side load balancing, where controlled clients pick backends directly, DNS, where resolvers rotate returned IPs but updates are limited by TTL, and dedicated load balancers, which add a hop for fast routing updates and control.
  • Client-side load balancing: Best for controlled internal clients, like microservices, that can keep backend lists fresh.
  • DNS: Acts like client-side load balancing; good for many clients, but changes are bounded by TTL.
  • Dedicated load balancer: Use when clients should not know backend hosts or when routing updates must be fast.

Layer 4 vs Layer 7

Layer 4 load balancers route by IP and port and fit persistent connections like WebSockets, while Layer 7 load balancers terminate HTTP and route by URL, headers, or cookies, the default for HTTP-based traffic.
  • Layer 4 load balancer: Routes by IP and port; good for WebSocket and other persistent connection protocols.
  • Layer 7 load balancer: Terminates HTTP and routes by URL, headers, or cookies; default for HTTP-based traffic.

Failure handling

Failure handling includes timeouts, which stop waiting on slow network calls, retries with exponential backoff, which recover from transient failures without synchronized retry storms, idempotency keys, which make retried writes safe, and circuit breakers, which fail fast after repeated dependency failures to stop cascades.
  • Timeouts: Set expected limits on network calls so slow dependencies do not stall the whole system.
  • Retries with exponential backoff: Use for transient failures; add jitter so clients do not retry in lockstep.
  • Idempotency key: Required for retried writes with side effects, like payments, to avoid duplicate execution.
  • Circuit breakers: Open after repeated failures, fail fast, and probe recovery later to prevent cascades.

Latency and Locality

Key latency numbers

Key latency numbers include a nearby server request at less than 1ms, a New York to London round trip at greater than 80ms, and the theoretical minimum New York to London round trip at around 56ms.
Nearby server request

<1ms.

NY to London round trip

>80ms.

Theoretical NY-London minimum

around 56ms.

Placement strategy

Placement strategy includes CDNs, which cache static or highly cacheable data at edge locations near users, and regional partitioning, which keeps data and compute in the same geography for region-local workloads like rides.
  • CDN: Use for globally read-heavy, cacheable content so edge servers answer requests close to users.
  • Regional partitioning: Use when queries are region-local; keep services and databases co-located with local users.

Interview defaults

Use TCP + HTTPS

The default stack; deviate only when requirements clearly push you elsewhere.

Use REST for public APIs

Reach for something else only when flexibility, binary efficiency, or streaming is core.

Use REST internally too

Bring up gRPC only when service-to-service performance matters.

Don't jump to WebSockets

Prove persistent, bidirectional communication is needed first.

Retry with exponential backoff

The reliability answer interviewers expect; senior probes may ask for jitter.

Your account is free and you can post anonymously if you choose.

Reading Progress

On This Page

Protocol Choices

Transport choice

API style

Realtime channel

Load balancing

Where balancing happens

Layer 4 vs Layer 7

Failure handling

Latency and Locality

Key latency numbers

Placement strategy

Interview defaults

Questions
Meta SWE Interview QuestionsAmazon SWE Interview QuestionsGoogle SWE Interview QuestionsOpenAI SWE Interview QuestionsEngineering Manager (EM) Interview Questions
Learn
Learn System DesignLearn DSALearn BehavioralLearn ML System DesignLearn Low Level DesignGuided Practice
Links
FAQPricingGift PremiumHello Interview Premium
Legal
Terms and ConditionsPrivacy PolicySecurity
Contact
About UsProduct Support

7511 Greenwood Ave North Unit #4238 Seattle WA 98103


© 2026 Optick Labs Inc. All rights reserved.