Backend System Design
Master the architectural patterns and distributed principles required to build resilient, planetary-scale backend systems. A deep dive into the engineering behind the web's biggest platforms.
Phases
5
Topics
34+
Technologies
9+
Depth
Advanced
01. Foundations
Building the bedrock of distributed thinking.
What is System Design?
Learn what system design is, the 3 layers of architecture, components, and interactions, and a step-by-step framework for tackling any system design interview question.
ExploreNetworking Essentials
Master the networking fundamentals every backend engineer needs — from the protocol stack to DNS resolution and load balancing strategies.
Open moduleAPI Design
Learn how to design clean, scalable APIs — REST conventions, GraphQL trade-offs, gRPC for internal services, and versioning strategies.
Open moduleData Modeling
Understand how to model data for real-world systems — relational schema design, normalization, indexing, transactions, and query optimization.
Open moduleNumbers Every Engineer Knows
Build intuition for system performance — latency numbers, storage hierarchies, throughput estimates, and the back-of-the-envelope math that drives every design decision.
Open module02. Core Distributed Systems
Managing state across multiple machines.
Consistency & Consensus
Understand the fundamental trade-offs of distributed systems — CAP theorem, PACELC model, strong vs eventual consistency, and linearizability.
- Consistency & Consensus
- Time & Ordering
Caching
Master caching strategies for distributed systems — cache layers, eviction policies, invalidation patterns, and the trade-offs that make or break system performance.
Open modulePartitioning & Routing
Learn how to split data across machines and route requests to the right shard — hash-based partitioning, consistent hashing, range partitioning, and rebalancing strategies.
Open moduleDatabase Internals
Under-the-hood mechanics — storage engines, write-ahead logs, LSM trees, B-trees, compaction, and the internal machinery that makes databases fast and reliable.
Open moduleData Structures for Big Data
Probabilistic & streaming data structures — Bloom filters, Count-Min Sketch, HyperLogLog, and other space-efficient structures that power analytics, deduplication, and real-time processing at scale.
Open module03. Patterns & Scaling
Design patterns for massive growth.
Scaling Reads
Read-heavy systems — read replicas, caching layers, CDN strategies, denormalization, and the patterns that let systems serve millions of reads per second.
- Replication & Caching
- Query Optimization
Scaling Writes
Write-heavy systems — message queues, event sourcing, write-ahead logs, batching, and the patterns that let systems absorb millions of writes per second.
Open moduleReal-time Updates
Live data delivery — WebSockets, Server-Sent Events, long polling, pub/sub systems, and the patterns that power chat, notifications, live dashboards, and collaborative editing.
Open moduleDealing with Contention
Concurrency & locking — optimistic vs pessimistic locking, distributed locks, rate limiting, and the patterns that prevent race conditions, double-spending, and resource exhaustion.
Open moduleMulti-step Processes
Distributed transactions — sagas, two-phase commit, compensating actions, and the patterns that coordinate multi-service operations without a single database transaction.
Open moduleHandling Large Blobs
Object & file storage — pre-signed URLs, chunked uploads, CDN delivery, and the patterns for storing and serving images, videos, and large files at scale.
Open moduleManaging Long-running Tasks
Async job management — task queues, job scheduling, progress tracking, retries, and the patterns that handle background work like video processing, report generation, and data pipelines.
Open moduleSecurity & Access Patterns
Authentication, authorization, and system protection — JWT vs sessions, OAuth 2.0, RBAC, API security, rate limiting for abuse prevention, and defense against common attack vectors.
Open module04. Key Technologies
Production-grade tools and their trade-offs.
Redis
In-memory data store — the primary choice for caching, session storage, pub/sub, and distributed locks. Supports rich data structures making it versatile beyond simple key-value.
- Data Structures
- Persistence & Durability
- Replication & High Availability
- Common Patterns
- Production & Operations
Kafka
Distributed event streaming platform — durable, high-throughput event bus for decoupled async communication, event sourcing, and real-time stream processing. Consumers can replay events from any offset.
Open moduleElasticsearch
Distributed search and analytics engine — full-text search with relevance ranking, real-time aggregations, and geo queries at scale. Built on Apache Lucene's inverted index.
Open modulePostgreSQL
Battle-tested relational database with true ACID guarantees. Correctness first — transactions, constraints, query planning, and the guarantees that make it the default choice when you need to trust your data.
Open moduleAPI Gateway
The traffic management system that sits between the outside world and your services. Handles routing, auth, rate limiting, and observability so your services don't have to.
Open moduleDynamoDB
The most opinionated database in the modern stack. You give up query flexibility at design time in exchange for guaranteed single-digit millisecond performance at any scale.
Open moduleCassandra
A distributed log that happens to look like a database. Cassandra trades query flexibility for always-on availability, massive write throughput, and linear scalability across datacenters.
Open moduleZooKeeper
The distributed coordination service. ZooKeeper provides the primitives — leader election, locks, configuration, service discovery — that keep distributed systems in sync.
Open moduleFlink
The distributed stream processing framework for stateful computations over unbounded data. Flink provides exactly-once guarantees, event-time processing, and millisecond latency at massive scale.
Open module05. System Design Problems
End-to-end system design case studies.
Design a URL Shortener (Bitly)
Interview-ready end-to-end design of a URL shortener — requirements, capacity estimation, base62 ID generation, caching and CDN layers, Kafka+Flink analytics, scaling tiers, abuse protection, observability, trade-offs, and 10+ curveball follow-ups.
ExploreDesign a Ride Matching System (Uber/Ola)
Interview-ready end-to-end design of a ride-matching system — geospatial indexing (S2/H3), 1.25M location updates/sec via WebSocket, matching algorithm with composite scoring, surge pricing, ETA estimation, ride state machine, scaling by city, and 8+ curveball follow-ups.
Open moduleDesign a Video Streaming Platform (YouTube/Netflix)
Interview-ready end-to-end design of a video streaming platform — resumable uploads, transcoding DAGs with segment-level parallelism, HLS/DASH adaptive bitrate streaming, multi-tier CDN delivery, view count pipelines, recommendation feeds, storage tiering, and 10+ curveball follow-ups.
Open moduleDesign a Web Crawler (Googlebot)
Interview-ready end-to-end design of a web crawler — URL frontier with priority scheduling, Bloom filter + SimHash deduplication, per-domain politeness enforcement, adaptive re-crawl scheduling, headless browser rendering for JS pages, fault tolerance, and 10+ curveball follow-ups.
Open moduleDesign a Collaborative Document Editor (Google Docs/Notion)
Interview-ready end-to-end design of a collaborative editor — OT vs CRDT conflict resolution, server-authoritative operation ordering, WebSocket synchronization, presence and cursor tracking, offline editing with rebase, version history with snapshot compaction, and 10+ curveball follow-ups.
Open moduleDesign a Ticket Booking System (Ticketmaster/BookMyShow)
Interview-ready end-to-end design of a ticket booking system — virtual waiting room for traffic shaping, Redis-based atomic seat claims, seat state machine with TTL expiration, payment saga with compensation, bot prevention and fairness mechanisms, and 10+ curveball follow-ups.
Open moduleDesign a Messaging App (WhatsApp/Telegram)
Interview-ready end-to-end design of a messaging app — WebSocket connection management at 50M concurrent, per-conversation message ordering, tiered group fan-out, Signal Protocol E2E encryption, multi-device sync, presence service, media pipeline, Cassandra data model, and 10+ curveball follow-ups.
Open moduleKey Technologies
Production-grade deep dives into Redis, Kafka, PostgreSQL, DynamoDB, Elasticsearch, Cassandra, Flink, and more. Know not just what they are, but when to use them and what their trade-offs are.
Explore Technologies