Most CAP theorem explanations conflate availability with freshness, CAP consistency with ACID consistency, and treat CP/AP as permanent labels. Here's how to state the trade-off correctly during a network partition.

71 posts
Most CAP theorem explanations conflate availability with freshness, CAP consistency with ACID consistency, and treat CP/AP as permanent labels. Here's how to state the trade-off correctly during a network partition.

Holding a million WebSocket connections is easy; delivering one message to users scattered across servers is the hard part. Here's why a broker alone doesn't solve fanout, and what a presence registry actually buys you.

WebSockets are the most efficient option per message, but idle connections still consume memory and file descriptors — for a large, mostly-idle client population, polling or SSE can end up cheaper overall.

"Server push" is a misleading name: browsers behind NAT and firewalls can't be dialed directly, so polling, long polling, SSE, and WebSockets are all client-initiated channels the server holds open differently.

A "Design Spotify" prompt mixes local controls, routine backend work, and hidden distributed-systems problems. Here's how to scope requirements so your limited interview time goes to what actually deserves architectural depth.

Horizontal scaling isn't a more mature version of vertical scaling — it's a change in system topology with real routing, state, and connection-budget costs. Here's how to decide which trade-off actually fits your measured bottleneck.

"We'd add more servers" is an unfalsifiable scaling answer. Setting latency, throughput, availability, fault-model, and cost targets first turns an assumed 10 million DAU into a checkable peak RPS and in-flight concurrency via Little's Law.

System design vocabulary is easy to reproduce, so a familiar diagram alone doesn't differentiate a candidate; the stronger signal is whether each architectural choice is tied to the actual workload, product risk, and operating constraints. The post walks through a notification-platform prompt to show what that judgment looks like in practice.

The biggest system design interview mistakes strong engineers make usually aren't knowledge gaps — they're communication patterns. Here's what to do instead.

Learn how to show senior-level judgment in system design interviews.
