Designing large-scale software systems. Play Systems Design trivia solo to sharpen your knowledge, or challenge a friend head-to-head in Trivia Tango — every question comes with an explanation so you learn as you play. Questions span every level, from easy warm-ups to expert-level stumpers, so there's a real challenge here however much you already know.
A mix of easy, medium and hard — questions run from warm-up to expert, so there's a real challenge at every level. Think you know the answers? Play to find out.
Before a browser can load a page, it asks this hierarchical directory to turn a typed name like example.com into a numeric machine address.
Difficulty: EasyA foundational result in distributed systems proves that when nodes cannot all reach each other, a store must choose between always answering and always answering correctly.
Difficulty: MediumThese special data types let many copies be edited independently and merged automatically to a single guaranteed outcome, because their operations commute and always converge.
Difficulty: HardTo avoid recomputing or refetching identical results, systems keep recently used data in this fast, temporary storage layer close to the application.
Difficulty: EasyThis compact probabilistic structure can tell you an element is definitely not in a set or probably is, and it never reports a false negative.
Difficulty: MediumIn eventually consistent stores, when a lookup finds replicas returning different values, the coordinator pushes the freshest value back to the stale ones during that very request.
Difficulty: HardPositioned in front of a pool of servers, this component spreads incoming traffic so that no single machine becomes overwhelmed.
Difficulty: EasyWhen servers join or leave a cluster, this technique reshuffles only a small fraction of keys instead of nearly all of them, by arranging nodes on a ring.
Difficulty: Medium