System Design Playground
Each simulator starts with the naive approach so you can watch it break, then flips on the pattern that fixes it. Building intuition for "why" a pattern exists sticks longer than memorizing a definition.
Why API Gateway
Fan clients out to services directly, then route them through a gateway — watch auth checks and traffic spikes change.
Why Load Balancer
Pin traffic to one server versus spreading it across a fleet — watch load, errors, and failover behave differently.
Why Circuit Breaker
Let a flaky downstream call hang every caller, then trip a breaker — watch the thread pool survive instead of exhausting.
Coming Soon
More on the way
Why service discovery, why a message queue, why caching layers, why sharding — the same "break it, then fix it" format is coming to more building blocks.