Topic · 20 lessons in 15 series
Caching
Where to cache, how long to keep things, and how to throw old data away without breaking users: browser caches, CDNs, Redis and server caches, collected from every series.
DevOpsWhole series →
System DesignWhole series →
- Caching Part 1: Where to Cache and WhyWhy ask the database the same question 10,000 times a second? What caches are, why they work so well, every layer you can cache at — browser to buffer pool — what to cache, and how Redis and Memcached compare.10 min
- Caching Part 2: Strategies, Eviction and InvalidationAdding a cache is easy; keeping it correct is hard. The six read/write strategies, why you delete rather than update on write, eviction policies you can try by hand, invalidation per data type, and the five ways caches cause outages.12 min
The Browser ContractWhole series →
Scenario DebuggingWhole series →
Practical Design ProblemsWhole series →
- Design a URL Shortener (Long URL to Short URL)Making IDs, Base62, collisions, caching for read-heavy traffic, 301 vs 302 and analytics, custom aliases, expiry and stopping abuse.25 min
- Design a Rate LimiterToken bucket, leaky bucket, fixed and sliding windows, where to apply limits, 429 with Retry-After, and the new RateLimit headers.22 min
- Design an LRU Cache, Idempotent Payments and Other Classic Mini-ProblemsShort worked designs: an LRU cache, idempotency keys, a job queue with retries and backoff, and feature flags.20 min
Senior Frontend DepthWhole series →
Full-Stack QuestionsWhole series →
Design Patterns & LLDWhole series →
System Design Case Studies 2Whole series →
- Design a Key-Value Store (Like Redis or Dynamo)A write-ahead log and snapshots on one node, then a consistent-hash ring, N/R/W quorum and version vectors across many.22 min
- Design a CDNEdge caches, cache keys and TTL, purging, request coalescing and hit-ratio arithmetic, with an edge-cache simulation.22 min