🍪 TechCookies
Home
DSA
System Design
JS
My Progress
Free
Log in
Start free
Loading system design concepts and challenges…
Feedback
System design concepts
Learn a concept — then attempt its linked design challenge.
All
Foundations
Data & Storage
Messaging
API & Backend
Real-Time
Frontend
Collaboration
Specialised
◉
Core concepts
· 5
Pro
◈
Async Job Processing Fundamentals
Learn the fundamentals of asynchronous job processing and message queues
~69 min
Free
◉
Caching
Caching improves application performance by storing frequently accessed data temporarily
~44 min
Pro
◈
Consistent hashing
Distributes keys across nodes with minimal reshuffling on topology changes
~49 min
Pro
◈
Databases & storage
Core database concepts covering relational and non-relational storage, indexing, transactions, and distributed patterns.
~38 min
Free
◉
Load balancing
Distributes incoming traffic across multiple servers to prevent overload and ensure availability
~28 min
⬡
Foundations of Distributed Systems
· 12
Free
◉
Synchronous vs Asynchronous Communication
Master when to block for responses versus fire-and-forget in distributed systems.
~29 min
Free
◉
REST API Design Principles
Master HTTP-based API design using REST principles, resource naming, status codes, and pagination.
~28 min
Free
◉
WebSockets vs SSE vs Polling
Compare polling, SSE, and WebSockets for real-time web communication
~28 min
Free
◉
Event-Driven Architecture
Software design pattern enabling system components to communicate asynchronously through events
~27 min
Free
◉
Vertical vs Horizontal Scaling
Choose between upgrading single machines or adding multiple machines to handle growth.
~26 min
Free
◉
Back-of-Envelope Estimation
Quick estimations for system design feasibility before coding
~33 min
Free
◉
Stateless Service Design
Design services without storing state between requests for infinite horizontal scaling
~31 min
Free
◉
Failure Modes in Distributed Systems
Learn failure modes in distributed systems and resilience patterns
~29 min
Free
◉
Exponential Backoff and Retry
Retry failed requests with exponentially increasing delays and randomization to improve resilience.
~29 min
Free
◉
Circuit Breakers
Prevent cascading failures by stopping requests to failing dependencies and fast-failing instead.
~27 min
Free
◉
Idempotency
Make non-idempotent operations safe to retry using unique keys and server-side deduplication
~28 min
Free
◉
Graceful Degradation and Fallbacks
Design systems to work partially when components fail instead of crashing completely
~30 min
◫
Data Storage & Databases
· 13
Free
◉
Schema Design Fundamentals
Design database schemas using tables, columns, data types, and constraints effectively
~29 min
Free
◉
Database Relationships and Foreign Keys
Master database relationships, foreign keys, and referential integrity for normalized schemas
~27 min
Free
◉
Database Constraints as Data Guards
Database constraints enforce data integrity rules that survive application bugs and multiple entry points.
~30 min
Free
◉
Database Indexes: Making Queries Fast
Database indexes accelerate query lookups using B-Tree structures, balancing read speed against write cost
~32 min
Free
◉
Append-Only Audit Tables
Audit tables provide a tamper-proof record of system actions
~29 min
Free
◉
Read Replicas and Write Scaling
Scale database reads using replicas while routing all writes through a primary.
~28 min
Free
◉
Redis Deep Dive
In-memory data structure store enabling fast caching, rate limiting, and real-time operations
~27 min
Free
◉
CDN Caching
Globally distributed networks caching content at edge nodes near users for speed and scale
~28 min
Free
◉
Client-Side Caching
Store data locally in the browser to eliminate redundant network requests and improve app performance
~31 min
Pro
◈
When to Use NoSQL
Master NoSQL database selection, document stores, key-value stores, and data modeling patterns.
~30 min
Pro
◈
Time-Series and Columnar Databases
Learn how columnar databases and time-series partitioning enable fast analytics on billions of rows
~25 min
Pro
◈
Object Storage (S3-Compatible)
Store and retrieve files at scale using S3-compatible object storage systems
~27 min
Pro
◈
IndexedDB for Browser-Side Storage
Low-level browser API for storing large structured data with transactions and indexes
~29 min
⇄
Messaging & Async Processing
· 9
Pro
◈
Message Queue Fundamentals
Message queues decouple services, enable asynchronous processing, and improve system resilience.
~30 min
Pro
◈
Kafka Deep Dive
Distributed event streaming platform for high-throughput, fault-tolerant real-time data pipelines
~27 min
Pro
◈
SQS and Managed Queues
Master Amazon SQS for decoupled, scalable message processing architectures
~27 min
Pro
◈
Dead-Letter Queues
Safety nets for failed messages in distributed systems using queues
~28 min
Pro
◈
At-Least-Once vs Exactly-Once Delivery
Master message delivery guarantees and build idempotent consumers for reliable distributed systems
~27 min
Pro
◈
Worker Pool Pattern
Fixed number of long-running processes continuously dequeuing and processing tasks from a shared queue
~29 min
Pro
◈
Queue-per-Channel Pattern
Use separate message queues per channel to avoid noisy neighbor problems and enable independent scaling.
~45 min
Pro
◈
Scheduled Jobs and Cron
Time-based job scheduling using cron with idempotency and distributed coordination
~28 min
Pro
◈
Async Processing Pipelines
Explore the fundamentals of asynchronous processing pipelines in software development
~30 min
⊛
API & Backend Patterns
· 9
Pro
◈
Authentication Fundamentals
Learn the fundamentals of authentication and authorization in web applications
~41 min
Pro
◈
Authorisation and RBAC
Understanding authorization and role-based access control for secure applications
~34 min
Pro
◈
Payment Integration Fundamentals
Learn secure payment processing, PCI compliance, webhooks, and subscription data modeling with Stripe.
~28 min
Pro
◈
Distributed Payment Architecture
Build fast, reliable payment systems handling money flow across distributed services safely
~28 min
Pro
◈
Provider Adapter Pattern
Design pattern enabling applications to communicate with multiple third-party services through a single, consistent interface
~27 min
Pro
◈
Third-Party API Resilience
Patterns and techniques to keep applications working when external APIs fail or degrade
~30 min
Pro
◈
Webhooks: Receiving External Events
HTTP push notifications from external services to your server for event-driven workflows
~27 min
Pro
◈
Rate Limiting Algorithms
Algorithms to fairly distribute API capacity and prevent system abuse
~27 min
Pro
◈
Rate Limiting in Practice
Control how often actions occur to protect systems from abuse and overload
~27 min
⚡
Real-Time & Streaming Systems
· 7
Pro
◈
WebSocket Architecture
Master WebSocket architecture for real-time two-way communication at scale
~28 min
Pro
◈
Server-Sent Events (SSE)
Server-pushed real-time data delivery using HTTP without polling or bidirectional protocols
~28 min
Pro
◈
Real-Time State Management
Keep application data synchronized with live server changes using efficient patterns
~29 min
Pro
◈
Presence and Awareness
Real-time presence and awareness systems showing who is active and their live state
~30 min
Pro
◈
Adaptive Bitrate Streaming (HLS/DASH)
Learn about Adaptive Bitrate Streaming and its key components
~30 min
Pro
◈
Audio Streaming Architecture
Explore the architecture and mechanisms behind audio streaming technologies
~30 min
Pro
◈
Video Processing Pipelines
Backbone systems that convert raw video uploads into multi-resolution streams delivered globally.
~32 min
⬕
Frontend Architecture
· 18
Free
◉
Frontend Architecture Patterns
Organizing frontend code through proven patterns for maintainability, scalability, and team collaboration
~28 min
Free
◉
State Management with Zustand
Lightweight React state management library with minimal boilerplate and selective re-renders
~28 min
Free
◉
Server State with React Query
Manage server state efficiently using React Query with caching, revalidation, and mutations
~29 min
Pro
◈
State Machines on the Frontend
Disciplined approach to modeling UI state using finite state machines
~28 min
Free
◉
Virtualisation and Large Lists
Render only visible items to handle thousands of DOM nodes efficiently
~26 min
Free
◉
Lazy Loading Images and Media
Load images only when needed to improve page performance and user experience
~29 min
Free
◉
Infinite Scroll and Pagination
Load large datasets incrementally using pagination and infinite scroll patterns
~29 min
Pro
◈
Web Workers for Heavy Computation
Move heavy computation off the main thread using Web Workers to keep UI responsive.
~30 min
Pro
◈
Canvas and WebGL Rendering
Explore canvas rendering techniques for efficient graphics and animations
~23 min
Pro
◈
Service Workers
Programmable network proxy enabling offline support, caching, and background sync for web apps
~27 min
Pro
◈
Offline-First Architecture
Design applications that function offline by prioritizing local storage and syncing when reconnected
~31 min
Pro
◈
Cross-Tab Synchronisation
Enable multiple browser tabs to synchronize state and communicate in real time
~29 min
Pro
◈
Intersection Observer API
Browser API for detecting element visibility changes without polling or layout thrashing
~28 min
Pro
◈
Geolocation and Permissions API
Master browser Geolocation and Permissions APIs to build location-aware web apps responsibly
~29 min
Pro
◈
File API and File System Access API
Read, write, and manage files in the browser using File API and File System Access API
~29 min
Pro
◈
Web Crypto API
Browser-native cryptographic operations for encryption, decryption, and key management without external libraries
~31 min
Pro
◈
Web Audio API
Browser-based audio creation, processing, and control via JavaScript without plugins.
~30 min
Pro
◈
WebRTC
Peer-to-peer audio, video, and data communication directly between browsers without plugins
~28 min
⇌
Collaboration & Conflict Resolution
· 6
Pro
◈
Conflict-Free Replicated Data Types (CRDTs)
Conflict-free data structures enabling real-time collaborative editing without central coordination.
~32 min
Pro
◈
Yjs in Practice
Build real-time collaborative apps with Yjs: syncing, offline support, persistence, and presence awareness.
~29 min
Pro
◈
Operational Transform (OT)
Technology enabling concurrent multi-user document edits through operation transformation and convergence
~32 min
Pro
◈
Last-Write-Wins Conflict Resolution
Resolves simultaneous writes by keeping the one with the highest timestamp
~29 min
Pro
◈
Three-Way Merge
Algorithm combining two document versions using a common ancestor to automatically resolve non-overlapping changes
~29 min
Pro
◈
Delta Sync
Synchronize distributed systems by transmitting only data changes, not full state
~27 min
◈
Specialised Topics
· 14
Pro
◈
A/B Testing Systems
A/B testing evaluates user responses to different versions of a webpage or app
~26 min
Pro
◈
Analytics Pipelines
A comprehensive guide to understanding analytics pipelines and their components
~37 min
Pro
◈
Logging and Observability
Understand system observability through logs, metrics, traces, and retention strategies
~28 min
Pro
◈
Geospatial Queries
Query locations using latitude, longitude, and distance calculations on Earth's surface
~45 min
Pro
◈
IP-Based Localisation
Determining user location and locale from IP addresses to serve localized content.
~30 min
Pro
◈
Real-Time Location Tracking
Techniques for smooth, real-time driver tracking on maps with GPS filtering and animation
~30 min
Pro
◈
Password Security
Comprehensive guide to secure password handling, hashing, breach detection, and system design
~29 min
Pro
◈
End-to-End Encryption in the Browser
Build secure end-to-end encrypted notes using Web Crypto API in the browser
~30 min
Pro
◈
File Security and Deduplication
Store files efficiently by content hash while maintaining security, privacy, and safe deletion.
~29 min
Pro
◈
Edge Computing and CDN Architecture
Distribute computation and caching globally to reduce latency and improve user experience
~28 min
Pro
◈
Microcontroller and Embedded Constraints
Design patterns, constraints, and safety mechanisms for embedded microcontroller systems
~29 min
Pro
◈
Offline-Capable Hardware Systems
Physical devices that function offline, sync transactions safely, and maintain security when reconnected
~25 min
Pro
◈
Drag-and-Drop Architecture
Master drag-and-drop interaction design from raw browser APIs to production libraries.
~27 min
Pro
◈
Grid Layout and Widget Systems
Build interactive draggable dashboards using flexbox, grid, and react-grid-layout
~34 min
System design challenges
End-to-end SD challenges. Learn the concepts above first.
↗ Design an application performance monitoring log storage system
intermediate · 45 min · backend
backend
monitoring
🔒 logging
▶ Start
↗ Design a medical appointment waitlist system
intermediate · 60 min · fullstack
fullstack
notifications
🔒 queue
▶ Start
↗ Design an arcade game card payment system at scale
senior · 60 min · backend
backend
payments
🔒 distributed
▶ Start
↗ Design a children's drawing animation app — minimize server farm cost
intermediate · 45 min · backend
backend
cdn
caching
▶ Start
View all 51 challenges →