Content & privacy
Architecture · INTERVIEW GUIDE

System design

Architecture decisions, distributed systems, and ten design scenarios.

Practice this topic
Filters
5 questions

Vertical vs horizontal scaling?

System design·Scaling & distributed systems

Vertical scaling adds resources to one machine, while horizontal scaling adds machines and distributes requests or data. Horizontal scaling improves capacity only if work can be shared without losing correct state coordination. Stateless request handlers are easier to spread, but databases, sessions and background work may still need special handling.

Advanced2 min read

Cache, CDN, replica or shard: which solves what?

System design·Scaling & distributed systems

Caches, CDNs, replicas and shards address different kinds of repeated work or load. A cache reuses a result, a CDN brings cacheable content closer to users, a replica copies data, and a shard owns a subset of data. Combining them requires freshness, routing and recovery rules rather than simply adding more boxes.

Advanced2 min read

How does cache-aside work?

System design·Scaling & distributed systems

Cache-aside means the application manages when values enter and leave the cache. It first looks in the cache, loads missing data from the source of truth, then stores that result for later readers. This reduces repeated database work but creates a separate copy whose freshness must be controlled.

Advanced2 min read

What does CAP actually mean?

System design·Scaling & distributed systems

CAP describes a limit on distributed systems during a network partition. If nodes cannot communicate, the system cannot guarantee both a single up-to-date view of data and a successful response to every request to non-failing nodes. It must sometimes sacrifice availability or allow responses that may not satisfy that consistency guarantee.

Advanced2 min read

What is eventual consistency?

System design·Scaling & distributed systems

Eventual consistency allows copies or derived views to differ temporarily while updates propagate. If no new changes occur and processing succeeds, those views converge. This is useful when a delay is acceptable, but the product must define what users see during that delay and how failed propagation is repaired.

Advanced2 min read

Difficulty is an editorial estimate. Completion means you chose to mark a question as understood.