Learn by building, step-by-step, hands-on system design
Each lab walks you through building a real architecture component by component. Every node is explained: what it does, why you need it, and how to configure it.
Core 3-tier, client-server patterns
Build a basic client → server → database architecture from scratch and understand the 3-tier pattern.
Translate traffic assumptions into concrete compute, cache, and storage sizing decisions.
Load balancing, CDN, API gateways
Add a load balancer to distribute traffic across multiple API servers and handle traffic spikes.
Add an API gateway for centralized auth, rate limiting, and request routing.
Add a CDN to serve static assets from edge locations worldwide, dramatically reducing latency for global users.
Databases, caching, search
Add a Redis cache to reduce database load and dramatically improve response times.
Add read replicas to scale database reads and add failover for high availability.
When to choose NoSQL over SQL and how to model data for document stores like MongoDB.
Build a search feature with Elasticsearch for fast, fuzzy, full-text search across your content.
Model OLTP B-Tree paths, LSM-heavy ingestion, and secondary index tradeoffs in one architecture.
Route traffic across shard domains while keeping lookup and rebalance metadata explicit.
Design a checkout flow that keeps correctness under retries, async workers, and partial failures.
Balance normalized OLTP schemas, denormalized read models, and zero-downtime migration controls.
Design a sortable, collision-safe ID issuance path with centralized config and audit trail.
Microservices, serverless, workers
Decompose a monolith into microservices with service discovery, circuit breakers, and independent scaling.
Build a leader/follower coordination flow with explicit quorum registry and election control.
Queues, events, streaming
Decouple your services with a message queue and process tasks asynchronously with workers.
Build an event-driven system where services communicate through events instead of direct API calls.
Build an end-to-end data pipeline: ingest → process → store → analyze with streaming and batch processing.
Build a backward-compatible data contract flow using event streams and a schema control plane.
Build real-time counters and batch analytics from the same event backbone without coupling the two paths.
Auth, encryption, defense in depth
Build a multi-layered security architecture with WAF, firewall, encryption, and rate limiting.
Compose ingress security, authn/authz, rate limiting, and crypto boundaries into one coherent flow.
Monitoring, logging, tracing
Real-world system design problems
Design a URL shortener like bit.ly - covering hashing, caching, database design, and redirect flow.
Design a WhatsApp-like chat system with WebSocket connections, message queuing, and delivery guarantees.
Design multi-channel notification fanout with priority queues, worker dispatch, and delivery analytics.
Build upload, transcode, storage, and playback paths with CDN origin strategy and API control planes.