Tag
distributed-systems
Design a Calendar and Scheduling System
Design shared events, recurring meetings, time-zone handling, reliable reminders, and incremental sync around one authoritative event model.
Design a Real-Time Ad Budget and Pacing System
Account for millions of impressions, filter 10,000 candidates locally, and protect shared advertising budgets with reserved quota.
Design an A/B Testing Platform
Deterministic local assignment, reliable exposure tracking, reproducible analytics, and safe rollout controls at scale.
OSI and TCP/IP: How Real Networks Work
Follow requests through IP, TCP, TLS, HTTP, proxies, and container networks to find the boundaries that matter in production.
Counting a Distributed Tree with Async Messages
An optimal message-based tree count in Java and Python, with isolated requests, duplicate suppression, retries, and topology follow-ups.
Design a Cloud Sandbox Platform for Untrusted Code
MicroVM isolation, durable workspaces, browser and SSH access, and resource-aware task scheduling with leases, fencing, and recovery.
The Trade-offs Behind Every System Design
How to reason about speed, freshness, durability, scale, and complexity by following where work and state move.
Stateless vs Stateful: Where Does the State Live?
Why moving state out of a server changes scaling and failure boundaries—and when keeping state close to computation is the better choice.
Vertical vs Horizontal Scaling: Where the Bottleneck Moves
A practical guide to adding capacity, finding the real bottleneck, and deciding when one larger node is simpler than many smaller ones.
Reliability and Fault Tolerance: The Recovery Path
A practical guide to failure boundaries, safe retries, replication, overload control, and proving that recovery actually works.
What Scalability Really Means
How to reason about growth, bottlenecks, load distribution, partitioning, overload, and the cost of adding capacity.
Build a Text Editor: Undo, Autocomplete, and Collaboration
An interview walkthrough from a mutable text buffer to reversible edits, a live prefix index, and convergent collaborative editing.
The Five Constraints of System Design
A practical mental model for latency, throughput, availability, durability, and consistency—and why improving one can make another harder.
Designing a Distributed Logging System
A Staff-level design for collecting, storing, indexing, searching, tailing, and alerting on millions of log events per second.