System Design Glossary
Key terms and concepts you need to know for system design interviews
C
Content Delivery Network (CDN)
NetworkingA CDN is a geographically distributed network of servers that caches and delivers content from locations close to end users, reducing latency and improving load times.
Caching
CachingCaching is the technique of storing copies of frequently accessed data in a faster storage layer so that future requests can be served more quickly, reducing latency and load on the primary data source.
Consistent Hashing
ScalingConsistent hashing is a distributed hashing technique that minimizes the number of keys that need to be remapped when the number of nodes in a system changes, making it ideal for distributed caches and databases.
CAP Theorem
ReliabilityThe CAP theorem states that a distributed data system can simultaneously provide only two of three guarantees: Consistency (all nodes see the same data), Availability (every request receives a response), and Partition tolerance (the system operates despite network failures).
Circuit Breaker
ReliabilityA circuit breaker is a design pattern that prevents an application from repeatedly trying an operation that is likely to fail, allowing the system to fail fast and recover gracefully instead of cascading failures.
CQRS (Command Query Responsibility Segregation)
ScalingCQRS is an architectural pattern that separates read operations (queries) from write operations (commands) into different models, allowing each to be optimized, scaled, and evolved independently.
D
Database Sharding
DatabasesDatabase sharding is a horizontal partitioning strategy that splits a large database into smaller, independent pieces called shards, each stored on a separate server to distribute load and improve performance.
Database Replication
DatabasesDatabase replication is the process of copying and maintaining database objects across multiple servers, providing redundancy for fault tolerance and enabling read scaling by distributing queries across replicas.
Database Indexing
DatabasesA database index is a data structure that improves the speed of data retrieval operations on a table at the cost of additional storage space and slower writes, functioning like a book's index for quick lookups.
H
Horizontal Scaling
ScalingHorizontal scaling (scaling out) means adding more machines to a system to handle increased load, distributing work across multiple servers rather than upgrading a single machine.
Heartbeat
ReliabilityA heartbeat is a periodic signal sent between distributed system components to indicate they are alive and functioning, used for failure detection and triggering recovery mechanisms when signals stop.
L
Load Balancer
NetworkingA load balancer distributes incoming network traffic across multiple servers to ensure no single server is overwhelmed, improving availability and responsiveness of applications.
Leader Election
ReliabilityLeader election is a distributed algorithm by which nodes in a cluster designate one node as the leader responsible for coordinating actions, ensuring that exactly one node makes decisions at any given time.
Long Polling
NetworkingLong polling is a technique where the client makes an HTTP request and the server holds the connection open until new data is available or a timeout occurs, simulating real-time server push over standard HTTP.
Latency
ReliabilityLatency is the time delay between a user action (or request) and the system's response, typically measured in milliseconds. It is a critical non-functional requirement in system design that directly impacts user experience.
M
Message Queue
MessagingA message queue is a communication mechanism that enables asynchronous data exchange between services by storing messages in a queue until the receiving service is ready to process them.
Microservices
ScalingMicroservices is an architectural style where an application is composed of small, independently deployable services, each running in its own process and communicating via lightweight protocols like HTTP or messaging.
R
Reverse Proxy
NetworkingA reverse proxy is a server that sits in front of backend servers and forwards client requests to them, providing load balancing, caching, SSL termination, and security benefits.
Rate Limiting
NetworkingRate limiting controls the number of requests a client can make to a service within a given time window, protecting systems from abuse, preventing resource exhaustion, and ensuring fair usage across users.