System Design Blog

Visual deep-dives on messaging, data structures, and interview topic comparisons.

Circuit Breaker

Aug 26, 2026

Stop calling a failing dependency. Closed is normal traffic, Open fails fast with no calls, Half-Open lets a few requests through to see if the service recovered — Resilience4j, PyBreaker, gobreaker.

system-design
2 min read

Fan-Out on Write vs Fan-Out on Read

Aug 26, 2026

When someone posts, do you push the update into every follower feed (fan-out on write) or assemble the feed when they open the app (fan-out on read)? Same idea as Twitter timelines — write is fast to read, read is cheaper to write.

system-design
2 min read

Transactional Outbox Pattern

Aug 26, 2026

Write the business row and an outbox event in the same database transaction, then a worker publishes pending events to Kafka. That way payment and analytics never miss an order that already committed.

system-design
2 min read

Cache Stampede / Thundering Herd

Aug 26, 2026

When a hot cache key expires, thousands of requests miss at once and stampede the database. One request should rebuild the cache (often with a lock); the rest wait or keep serving stale data.

system-design
2 min read

Presigned URL and Multi-Part Upload

Aug 25, 2026

How to upload large files (like a 2GB video) without sending them through your backend twice — pre-signed URLs offload the transfer to S3, and multi-part upload retries only failed chunks.

system-design
2 min read

Differences in System Design Interview Topics

Aug 1, 2026

Common "difference" questions asked in system design interviews — comparing patterns, protocols, and architectural choices side by side.

5 min read
1 / 2