When tackling system design interviews or architecting large-scale systems, familiarity with key terminologies is essential. This guide covers 50 of the most critical concepts, enabling you to discuss and implement complex designs confidently.
1-10: Basics of System Design
-
Latency
- The time taken for a request to travel from source to destination. Lower latency ensures faster response times.
-
Throughput
- The amount of data processed in a given period. High throughput ensures systems handle large workloads efficiently.
-
Scalability
- A system's ability to grow in capacity to handle increased load, either horizontally (adding more machines) or vertically (upgrading machines).
-
Availability
- The percentage of time a system is operational and accessible. High availability minimizes downtime.
-
Fault Tolerance
- The ability of a system to continue operating despite hardware or software failures.
-
Load Balancer
- A component that distributes traffic across multiple servers to ensure no single server is overwhelmed.
-
Replication
- Creating multiple copies of data to improve availability and fault tolerance.
-
Partitioning (Sharding)
- Splitting a large database into smaller, more manageable parts for improved performance and scalability.
-
CAP Theorem
- A principle stating that a distributed system cannot simultaneously guarantee Consistency, Availability, and Partition tolerance.
-
Cache
- A high-speed storage layer that holds frequently accessed data to reduce latency.
11-20: Database and Storage Concepts
-
ACID
- A set of properties (Atomicity, Consistency, Isolation, Durability) that ensure reliable transactions in databases.
-
BASE
- An alternative to ACID, emphasizing availability and eventual consistency over strict consistency.
-
SQL vs NoSQL
- SQL databases use structured schemas (e.g., MySQL), while NoSQL databases (e.g., MongoDB) handle unstructured data.
-
Eventual Consistency
- In distributed databases, data may not be immediately consistent across nodes but will become consistent eventually.
-
Primary Key
- A unique identifier for each record in a database.
-
Foreign Key
- A reference to a primary key in another table, establishing relationships between data.
-
Index
- A data structure that improves the speed of data retrieval in databases.
-
Distributed File System (DFS)
- A storage system that spreads data across multiple nodes, such as Hadoop HDFS.
-
Data Lake
- A centralized repository that stores raw data in its original format.
-
Data Warehouse
- A system optimized for querying and analyzing large datasets, often used for business intelligence.
21-30: Networking and Communication Concepts
-
DNS (Domain Name System)
- Resolves domain names into IP addresses for network communication.
-
HTTP/HTTPS
- Protocols used for transmitting web data securely over the internet.
-
WebSocket
- A communication protocol that enables real-time, bidirectional data transfer between a client and server.
-
REST API
- A widely-used web service architecture that allows systems to communicate using HTTP methods.
-
gRPC
- A high-performance, RPC framework using HTTP/2 for fast communication between services.
-
TLS/SSL
- Security protocols for encrypting data transmitted over the internet.
-
Reverse Proxy
- A server that routes client requests to backend services, often used for load balancing or security.
-
CDN (Content Delivery Network)
- A network of servers that deliver content to users based on their geographic location.
-
IP Address
- A unique identifier assigned to each device connected to a network.
-
Subnetting
- Dividing a network into smaller, more manageable segments.
31-40: Distributed Systems Concepts
-
Microservices
- A system design pattern where applications are broken into loosely coupled, independently deployable services.
-
Monolithic Architecture
- A traditional design where the entire application is built and deployed as a single unit.
-
Message Queue
- A communication pattern where producers send messages to a queue, and consumers process them asynchronously.
-
Event-Driven Architecture
- A system where services react to events (state changes) generated by other components.
-
Pub/Sub Model
- A messaging pattern where producers publish messages, and consumers subscribe to receive them.
-
Consensus Algorithm
- Protocols like Paxos or Raft used to achieve agreement across distributed systems.
-
Leader Election
- A process where nodes in a distributed system select a leader to coordinate tasks.
-
ZooKeeper
- A centralized service used to maintain configuration, synchronization, and naming for distributed systems.
-
Circuit Breaker Pattern
- A fault-tolerance design that prevents cascading failures by blocking requests to a failing service.
-
Quorum
- The minimum number of nodes required to agree on a decision in a distributed system.
41-50: Performance, Monitoring, and Security Concepts
-
Load Testing
- Simulating heavy usage to test how a system performs under stress.
-
Rate Limiting
- Controlling the number of requests a system can handle to prevent abuse.
-
Observability
- The practice of monitoring a system's health using logs, metrics, and traces.
-
Service Mesh
- A dedicated infrastructure layer for handling communication between microservices, with features like traffic control and security.
-
Autoscaling
- Automatically adjusting system resources based on traffic and workload.
-
Dead Letter Queue (DLQ)
- A queue where unprocessable messages are sent for further inspection.
-
Idempotency
- Ensuring repeated operations have the same effect as a single execution.
-
OAuth
- An authorization framework that allows third-party apps to access user resources securely.
-
JWT (JSON Web Token)
- A token-based authentication method used to verify users' identities.
-
Zero Trust Architecture
- A security model where no user or device is trusted by default, even within the network perimeter.
Final Thoughts
Mastering these 50 system design terminologies will prepare you for system design interviews and enable you to build robust, scalable, and efficient applications. Whether you’re designing a microservices architecture, working with message queues, or securing APIs with OAuth, these concepts are the foundation for modern software systems.
Understanding these terms goes beyond theory—implementing them in real-world projects is where the real value lies. Be sure to incorporate them into your projects to develop a solid engineering mindset and ace your next system design challenge!
Further Learning:
- System Design Primer
- Grokking the System Design Interview
- Engineering Blogs: 49 System Design Blogs You Need to Follow
With this terminology guide, you’ll not only speak the language of system design but also navigate technical challenges with greater confidence. Whether preparing for interviews or building production systems, these terms will help you think like an architect.
Top comments (0)