Free ยท Learn
System Design Concept Map The vocabulary of system design, in one place. Click any concept to learn what it is, why it exists, and the trade-off it makes. No account, no paywall. Start anywhere.
129 concepts Free foreverNo sign-up Collapse all
Fundamentals 6 What is System Design? Turning fuzzy requirements into a concrete, scalable architecture. How to Approach System Design Clarify, estimate, sketch, then deepen the bottlenecks. Performance vs Scalability Fast for one user versus staying fast for many. Latency vs Throughput Time per request versus requests handled per second. Availability vs Consistency Always answer, or always answer correctly. CAP Theorem During a partition, pick consistency or availability. Consistency & Availability 8 Weak Consistency After a write, reads may or may not see it. Eventual Consistency Given time and no new writes, replicas converge. Strong Consistency Every read sees the latest committed write. Fail-Over (Active-Active vs Active-Passive) Automatically shift traffic when a server dies. Replication (Master-Slave vs Master-Master) Copy data across nodes for reads or resilience. Availability in Numbers (Nines) Uptime expressed as nines of allowed downtime. Availability in Parallel vs Sequence Redundancy multiplies uptime; dependencies multiply downtime. Vector Clocks Track causality to detect concurrent, conflicting updates. Networking & Traffic 11 Domain Name System (DNS) The internet's phone book, turning names into IP addresses. Content Delivery Network (CDN) Edge caches near users that serve content fast. Push CDNs You upload content to the edge ahead of demand. Pull CDNs The edge fetches from your origin on first request. Load Balancers Distributes incoming traffic across many backend servers. Load Balancer vs Reverse Proxy Overlapping roles: spreading load versus fronting servers. Load Balancing Algorithms Rules that decide which server gets each request. Layer 4 Load Balancing Routes by IP and port without reading content. Layer 7 Load Balancing Routes by application content like URLs and headers. Horizontal Scaling Add more machines instead of bigger machines. Reverse Proxy A server-side intermediary fronting your backend services. Application Layer 7 Application Layer The tier that runs business logic, kept separate from web and data. Microservices Splitting an app into small, independently deployable services. Service Discovery How services find each other's changing network locations automatically. Background Jobs Deferring slow work so requests return fast. Event-Driven Jobs Work triggered by something happening in the system. Schedule-Driven Jobs Work that runs on a clock or fixed interval. Returning Results How clients get answers from asynchronous work. Databases 16 Databases Systems that store, organize, and retrieve data reliably. RDBMS (Relational Databases) Table-based stores with strict schemas and ACID guarantees. Database Replication Copying data across servers for availability and read scale. Database Sharding Splitting data across servers to scale writes. Federation Splitting databases by function rather than by rows. Denormalization Duplicating data to make reads faster. SQL Tuning Optimizing queries and schema for speed. NoSQL Non-relational stores built for scale and flexibility. Key-Value Store The simplest NoSQL model: a giant distributed dictionary. Document Store Stores self-describing documents like JSON with flexible schemas. Wide-Column Store Column-family stores built for massive write-heavy scale. Graph Databases Stores optimized for relationships between entities. SQL vs NoSQL Choosing based on structure, consistency, and scale needs. Consistent Hashing Distributing keys so adding nodes moves little data. Bloom Filters A tiny probabilistic test for set membership. LSM-Trees & SSTables Write-optimized storage behind many modern databases. Caching 10 Caching Store hot data close by to skip expensive work. Client Caching Cache responses in the browser or device itself. CDN Caching Serve content from edge servers near the user. Web Server Caching Reverse proxies cache responses in front of your app. Database Caching The database keeps hot data and query results in memory. Application Caching An in memory store like Redis holds shared hot data. Cache-Aside App checks the cache, then loads and fills on a miss. Write-Through Writes hit the cache and database together, synchronously. Write-Behind (Write-Back) Write to cache now, flush to the database later. Refresh-Ahead Proactively refresh hot entries before they expire. Asynchronism & Communication 13 Asynchronism Do slow work in the background, respond right away. Message Queues A buffer that passes messages between decoupled services. Task Queues Queue background jobs for workers to process. Back Pressure Signal upstream to slow down before things overflow. Communication How services and clients exchange data over networks. HTTP The request-response protocol of the web. TCP Reliable, ordered, connection-based data delivery. UDP Fast, connectionless delivery with no guarantees. RPC Call a remote function as if it were local. gRPC High-performance RPC over HTTP/2 with protobuf. REST Resource-oriented APIs built on HTTP conventions. GraphQL Clients ask for exactly the data they need. Idempotent Operations Repeating the same request causes no extra effect. Performance Antipatterns 10 Improper Instantiation Repeatedly creating objects meant to be shared and reused. Monolithic Persistence Cramming all data into one store with mismatched access patterns. Noisy Neighbor One tenant hogs shared resources and starves the others. Synchronous I/O Blocking a thread while waiting on slow I/O operations. Extraneous Fetching Retrieving far more data than the operation actually needs. Busy Database Offloading too much processing onto the database engine. Busy Frontend Doing resource-heavy work on threads that should stay responsive. Chatty I/O Death by a thousand tiny requests instead of a few batched ones. Retry Storm Aggressive retries amplify a failure into a self-inflicted outage. No Caching Recomputing or refetching identical results over and over. Monitoring & Observability 9 Monitoring Continuously collecting signals to know how a system behaves. Health Monitoring Checking whether components are alive and functioning. Availability Monitoring Measuring whether users can actually reach and use the system. Performance Monitoring Tracking latency, throughput, and resource use over time. Security Monitoring Watching for intrusions, abuse, and suspicious activity. Usage Monitoring Tracking how, how much, and by whom the system is used. Instrumentation Adding code that emits the signals monitoring depends on. Visualization & Alerts Turning telemetry into dashboards and timely notifications. Observability (Metrics, Logs, Traces) Understanding internal state from external outputs alone. Cloud Patterns: Design & Implementation 14 Strangler Fig Replace a legacy system gradually by routing features to new code. Sidecar Attach helper functionality as a separate process beside your app. Static Content Hosting Serve unchanging files directly from storage or a CDN. Leader Election Pick one instance to coordinate work among many peers. CQRS Separate the models for reading data from writing it. Pipes and Filters Break processing into independent stages connected in sequence. Ambassador A helper proxy that handles network calls on your behalf. Gateway Routing Route requests to backend services through a single entry point. Gateway Offloading Move shared cross-cutting concerns into the gateway itself. Gateway Aggregation Combine multiple backend calls into one client request. External Configuration Store Keep configuration in a central store outside your app. Compute Resource Consolidation Pack multiple tasks onto shared compute to cut waste. Backends for Frontends Give each client type its own tailored backend service. Anti-Corruption Layer Translate between your model and a foreign or legacy one. Cloud Patterns: Data Management 4 Valet Key Hand clients a scoped token to access storage directly. Materialized View Precompute and store query results for fast reads. Index Table Build secondary lookup tables for non-key query fields. Event Sourcing Store state as an append-only log of change events. Cloud Patterns: Messaging 10 Sequential Convoy Process related messages in order while others run in parallel. Scheduler Agent Supervisor Coordinate distributed steps and recover the ones that fail. Queue-Based Load Leveling A queue absorbs spikes so services drain work steadily. Publisher/Subscriber Broadcast events to many interested consumers without coupling. Priority Queue Serve high-priority messages ahead of lower-priority ones. Competing Consumers Multiple workers pull from one queue to scale throughput. Choreography Services react to events instead of a central conductor. Claim Check Store large payloads externally and pass a reference. Async Request-Reply Decouple a slow backend from a client that needs an answer. Saga Pattern Coordinate a distributed transaction with compensating undo steps. Reliability Patterns 9 Deployment Stamps Deploy identical copies of the stack to isolate tenants. Geodes Geographically distributed nodes that all serve any request. Throttling Cap resource use per client to protect the system. Health Endpoint Monitoring Expose health checks that external tools probe regularly. Bulkhead Isolate resource pools so one failure cannot sink all. Circuit Breaker Stop calling a failing dependency to let it recover. Compensating Transaction Undo completed steps when a multi-step operation fails. Retry Reattempt transient failures with backoff and limits. Consensus (Raft / Paxos) Get distributed nodes to agree despite failures. Security Patterns 2 Federated Identity Delegate authentication to a trusted external identity provider. Gatekeeper A hardened broker shields backend services from clients.