Skip to main content

High Level Design Roadmap

35 topics · 30 interview problems · Foundational to Advanced

Progress0 / 35 completed (0%)
Level 1 — Foundational8 topics
#1API DesignEasy
#2Database Design: SQL vs NoSQLEasy

When to use relational (ACID, joins, strong consistency) vs NoSQL (flexible schema, horizontal scale). Understand document, key-value, wide-column, and graph stores and their tradeoffs.

📄 Read full notes →
#3CachingEasy

Cache-aside pattern with Redis/Memcached, write-through vs write-back, eviction policies (LRU, LFU, TTL), cache invalidation strategies, cache stampede prevention, CDN caching for static assets.

📄 Read full notes →
#4Load BalancingEasy

Layer 4 (transport) vs Layer 7 (application) load balancers, routing algorithms (round-robin, least connections, IP hash), sticky sessions, health checks, and geographic load balancing.

📄 Read full notes →
#5CDN (Content Delivery Network)Easy

How CDNs cache and serve static assets from edge nodes, cache-control headers, origin shield, dynamic vs static content, CDN invalidation strategies.

📄 Read full notes →
#6Blob / Object StorageEasy

S3-style object storage for unstructured data (images, videos, files), chunked uploads, pre-signed URLs, metadata vs binary separation, multipart upload for large files.

📄 Read full notes →
#7Networking EssentialsEasy

HTTP/HTTPS (request-response, headers, status codes), DNS resolution, TCP vs UDP, latency vs throughput tradeoffs, gRPC for internal services, connection pooling.

📄 Read full notes →
#8Scaling FundamentalsEasy

Vertical scaling (bigger machines) vs horizontal scaling (more machines), stateless service design (session externalization), auto-scaling triggers, back-of-the-envelope estimation (QPS, storage, bandwidth).

📄 Read full notes →
Level 2 — Intermediate16 topics
#9Consistent HashingMedium

Hash ring concept, virtual nodes, how it minimizes data redistribution when nodes join/leave, applications in distributed caches and databases.

📄 Read full notes →
#10Database ShardingMedium

Horizontal partitioning strategies — hash-based vs range-based sharding, choosing a shard key, avoiding hot spots, cross-shard queries and joins, resharding challenges.

📄 Read full notes →
#11Database ReplicationMedium

Leader-follower (master-slave) replication, read replicas for scaling reads, synchronous vs asynchronous replication, replication lag and eventual consistency implications, failover.

📄 Read full notes →
#12Database IndexingMedium

B-tree indexes for range queries, hash indexes for exact lookups, composite indexes and column order, covering indexes, when indexes hurt (write amplification), external indexes (Elasticsearch for full-text).

📄 Read full notes →
#13CAP Theorem & Consistency ModelsMedium

CAP theorem tradeoffs (Consistency, Availability, Partition Tolerance), strong consistency vs eventual consistency, read-your-writes, monotonic reads, linearizability, when to choose AP vs CP systems.

📄 Read full notes →
#14Message Queues & Async ProcessingMedium

Producer-consumer pattern, Kafka (topics, partitions, consumer groups), SQS, at-least-once vs exactly-once semantics, dead letter queues, backpressure, when queues beat synchronous calls.

📄 Read full notes →
#15Rate LimitingMedium

Token bucket, leaky bucket, and sliding window algorithms; distributed rate limiting with Redis (atomic Lua scripts), rate limiting at the API gateway vs per-service, handling burst traffic.

📄 Read full notes →
#16Real-time UpdatesMedium
#17Distributed LockingMedium

Why distributed locks are needed, Redis-based locks (SET NX EX), Redlock algorithm, fencing tokens to handle lock expiry races, lock contention and its impact on throughput.

📄 Read full notes →
#18Redis Deep DiveMedium

Data structures (strings, hashes, sorted sets, lists, sets, bitmaps, HyperLogLog), TTL-based expiry, pub-sub, Lua scripts for atomicity, persistence (RDB vs AOF), Redis Cluster vs Sentinel.

📄 Read full notes →
#19Search & ElasticsearchMedium

Inverted index construction, full-text search (tokenization, stemming, relevance scoring with BM25/TF-IDF), index sharding and replication in Elasticsearch, near-real-time indexing, change data capture for sync.

📄 Read full notes →
#20Wide-Column Stores (Cassandra)Medium

Partition key selection for even distribution, clustering keys for ordering, tunable consistency (ONE, QUORUM, ALL), compaction strategies, modeling around access patterns (no joins).

📄 Read full notes →
#21Key-Value Stores at Scale (DynamoDB)Medium

Single-table design, partition key + sort key modeling, Global Secondary Indexes (GSIs), DynamoDB Streams, provisioned vs on-demand capacity, hot partition problem.

📄 Read full notes →
#22Fanout PatternsMedium

Fan-out-on-write (push model — pre-populate each follower's feed) vs fan-out-on-read (pull model — compute feed at read time); hybrid approach for celebrities, tradeoffs in storage vs latency.

📄 Read full notes →
#23Job Scheduling & Background ProcessingMedium

Cron-based scheduling, distributed job queues (Celery, Sidekiq), idempotent job design, at-least-once execution guarantees, failure retries with backoff, job deduplication, priority queues.

📄 Read full notes →
#24Microservices & API GatewayMedium

Service decomposition principles, inter-service communication (REST vs gRPC), service discovery, API gateway responsibilities (routing, auth, rate limiting, circuit breaking), tradeoffs vs monolith.

📄 Read full notes →
Level 3 — Advanced11 topics
#25Stream ProcessingHard

Kafka as an event log, Flink/Kinesis for stateful stream processing, windowed aggregations (tumbling, sliding, session windows), exactly-once semantics, watermarks for out-of-order events.

📄 Read full notes →
#26Distributed Counting / Top KHard

Count-Min Sketch for approximate counting, lossy counting, Space-Saving algorithm, two-stage MapReduce approach for heavy hitters; tradeoffs between exactness and memory/throughput.

📄 Read full notes →
#27Proximity / Geo SearchHard

Geohashing (encoding lat/lng into a string prefix), quadtrees for dynamic data, PostGIS for polygon queries, radius search with grid cells, nearest-neighbor search.

📄 Read full notes →
#28Real-time Collaboration (OT / CRDT)Hard

Operational Transformation (OT) for collaborative text editing, Conflict-Free Replicated Data Types (CRDTs) as the modern alternative, cursor/selection sync, version vectors, merging concurrent edits.

📄 Read full notes →
#29Time Series DatabasesHard

Append-only write patterns, compression techniques (delta encoding, Gorilla compression), downsampling and retention policies, InfluxDB/TimescaleDB internals, querying time-range aggregations efficiently.

📄 Read full notes →
#30Distributed Transactions & IdempotencyHard

Two-phase commit (2PC) and its limitations, Saga pattern (choreography vs orchestration), idempotency keys for safe retries, compensating transactions for rollback, outbox pattern for reliable event publishing.

📄 Read full notes →
#31ZooKeeper / Distributed CoordinationHard

Leader election, distributed configuration management, service registry, ephemeral nodes, watch mechanisms; when ZooKeeper is overkill vs when it's necessary.

📄 Read full notes →
#32Big Data ArchitecturesHard

Lambda architecture (batch layer + speed layer + serving layer), Kappa architecture (stream-only), batch processing with Spark/Hadoop, data lake vs data warehouse, compaction and partitioning for query efficiency.

📄 Read full notes →
#33Web Crawling at ScaleHard

URL frontier (priority queue + politeness delays), distributed fetch workers, deduplication via bloom filters or URL hashes, robots.txt compliance, re-crawl scheduling, DNS caching.

📄 Read full notes →
#34Ad Aggregation PipelinesHard

High-throughput event ingestion, server-side click deduplication, windowed counting (hourly/daily rollups), fraud signal injection, lambda architecture for real-time + batch accuracy.

📄 Read full notes →
#35Vector Databases & LLM InfrastructureHard

Embeddings and semantic search, Approximate Nearest Neighbor (ANN) search algorithms (HNSW, IVF), vector database options (Pinecone, Weaviate, pgvector), serving LLM inference at scale with streaming token output.

📄 Read full notes →