Skip to content
Katabench
Try free

Topic

System Design

Distributed systems building blocks: load balancing, replication, queues, edge caching, sharding, and capacity math, plus the failure mode each one trades away.

Practice this topic: System Design Studio →

Try Route Through the App → Free with an account

Latest articles

RSS feed →

15 articles

System Design 8 min read

Dead-Letter Queues: Diagnose Failures and Replay Safely

Use a dead-letter queue to isolate poison messages, diagnose failed deliveries, and replay repaired work without duplicating effects or hiding lost jobs.

Read article →
System Design 9 min read

Design a file storage service: uploads, scans, downloads

Design a file storage service where bytes never pass through the API: scoped signed uploads, a metadata state machine, an async scan queue, and edge downloads.

Read article →
System Design 9 min read

Design a real-time chat system: WebSockets and presence

Design a real-time chat system around long-lived connections: a gateway tier, a session registry, pub/sub fan-out, per-conversation sequences, and presence.

Read article →
System Design 9 min read

Design a web crawler: frontier, politeness, and dedup

Design a web crawler as a scheduling problem: a URL frontier, per-host politeness, a fetch/parse checkpoint, dedup at scale, and recrawl by change rate.

Read article →
System Design 9 min read

Back-of-the-envelope capacity estimation for system design

Back of the envelope estimation for system design: turn daily active users into QPS, bandwidth, storage, and pool sizes, then find what saturates first.

Read article →
System Design 9 min read

CDN and edge caching: what belongs at the edge

CDN edge caching is HTTP caching at scale. Which Cache-Control directives matter, what never belongs at the edge, and how a 95% hit rate changes the origin.

Read article →
System Design 9 min read

Change data capture: keep a search index in sync without dual writes

Updating the database and the search index in one request is a dual write that drifts. Use change data capture or an outbox to derive the index instead.

Read article →
System Design 9 min read

Database replication and failover: what a standby promises

A replica is not a backup and a failover is not free. Database replication and failover explained: sync vs async commit, replication lag, safe promotion.

Read article →
System Design 9 min read

Database sharding vs partitioning: when one database is not enough

Database sharding vs partitioning: one splits a table inside a database, the other splits data across them. What each gives up and how to pick a shard key.

Read article →
System Design 8 min read

Design a notification system: fan-out, retries, and consent

Design a notification system that fans one event out to email, push, and SMS without double-sending, blocking on a dead provider, or messaging opted-out users.

Read article →
System Design 8 min read

Design a URL shortener: from one API to a billion redirects

Design a URL shortener with real numbers: 40 writes and 4,000 redirects a second, base62 keys, a cache-aside redirect path, and the 301 vs 302 analytics trade.

Read article →
System Design 8 min read

Fan-out on write vs fan-out on read: designing a social feed

Fan-out on write vs fan-out on read, with the arithmetic: why push wins for ordinary accounts, where a 10M-follower post explodes, and how a hybrid merges both.

Read article →
System Design 9 min read

Load balancing algorithms: round robin to consistent hashing

Load balancing algorithms are bets about your fleet. Round robin assumes equal servers, least connections dodges slow ones, consistent hashing keeps keys put.

Read article →
System Design 9 min read

Queue-based load leveling: absorb write spikes without losing work

Queue-based load leveling puts a durable queue between a write spike and the workers that drain it. Do the backlog arithmetic and watch the metric that matters.

Read article →
System Design 9 min read

System design fundamentals: nine building blocks

System design fundamentals as nine building blocks: name the pressure, apply the pattern, count what it costs, and learn the failure mode each block introduces.

Read article →

Get new puzzles and .NET tips in your inbox

A short note when fresh kata land, plus the C# and performance tricks behind the grading. No spam, unsubscribe anytime.