Challenges
Practice system design with guided challenges and real-world requirements
Design a Rate Limiter
Design a distributed rate limiting service that protects APIs from abuse. Consider token bucket, sliding window, and fixed window algorithms. Handle distributed coordination across multiple server instances.
~45 min · 6 requirements
Caching & Performance
2 challengesMaster caching strategies, CDN design, and performance optimization at scale.
Design a CDN
Design a content delivery network that caches and serves static and dynamic content from edge locations worldwide. Consider cache invalidation strategies, origin shielding, and geographic routing.
Design a Cache System
Design a distributed caching layer for a high-traffic web application. Consider multi-tier caching, write-through vs write-back strategies, cache coherence, and eviction policies.
Real-time & Messaging
2 challengesBuild systems that handle real-time communication, event streaming, and message delivery.
Design a Chat System
Design a real-time messaging platform supporting 1-on-1 and group conversations. Handle message delivery, read receipts, online presence, message history, and push notifications for offline users.
Design a Notification Service
Design a multi-channel notification delivery system. Route notifications through push, email, SMS, and in-app channels based on user preferences and priority levels. Handle retry logic and delivery tracking.
Storage & Data
3 challengesDesign data storage, retrieval, and management systems for diverse workloads.
Design a URL Shortener
Design a URL shortening service like bit.ly. Generate short, unique aliases for long URLs, handle redirection, track click analytics, and support custom aliases and expiration dates.
Design a File Storage System
Design a scalable file storage service similar to S3 or Google Cloud Storage. Handle file uploads, downloads, versioning, access control, and metadata management across distributed storage nodes.
Design a Key-Value Store
Design a distributed key-value store that supports high throughput reads and writes. Consider data partitioning, replication, consistency models, and failure handling across a cluster of nodes.
Infrastructure
2 challengesTackle networking, load distribution, and compute orchestration challenges.
Design a Load Balancer
Design a layer 7 load balancer that distributes HTTP traffic across backend servers. Support multiple balancing algorithms, health checks, session persistence, and graceful server drain.
Design a Task Queue
Design a distributed task queue for processing background jobs. Support delayed execution, retries with backoff, priority queues, dead letter queues, and exactly-once processing guarantees.