Deep Dive on Apache Kafka: A System Design Interview Perspective
A system design interview guide to Apache Kafka — commit log architecture, partitioning, replication, consumer groups, and exactly-once semantics.
Technical essays, architectural deep-dives, and practical guides at the intersection of code and design.
Page 5 of 28
A system design interview guide to Apache Kafka — commit log architecture, partitioning, replication, consumer groups, and exactly-once semantics.
A guide to Redis — single-threaded architecture, data structures, persistence, clustering, distributed locks, and running it at scale.
A system design interview guide to Elasticsearch — inverted indexes, cluster architecture, the write/read paths, and scaling search systems.
A system design interview guide to API Gateways — request lifecycle, auth, rate limiting, routing, circuit breakers, and production patterns.
A guide to designing production-grade REST APIs — resource naming, HTTP methods, pagination strategies, versioning, and error handling.
A hands-on guide to data modelling — normalization tradeoffs, indexing strategies, access-pattern-driven schemas, and safe schema evolution.
A guide to caching in distributed systems — layers, invalidation strategies, eviction policies, thundering herd and hot keys, with Redis patterns.
How to build real-time systems handling millions of connections — WebSockets, SSE, pub/sub fan-out, presence tracking, and backpressure.
A practical guide to scaling write-heavy systems — sharding strategies, write-ahead logs, async queues, event sourcing, and batching.
How to design systems that reliably execute long-running tasks — async job queues, progress tracking, retries, checkpointing, and sagas.
How to design systems that upload, store, process, and serve large binary objects at scale — presigned URLs, chunked uploads, and CDN tiering.
A deep dive into the SAGA pattern for distributed transactions — orchestration vs choreography, compensation flows, and production code.