Essential Terminology for System Design Interviews: 20 Key Concepts Explained
Table of contents
No headings in the article.
Scalability: The ability of a system to handle increasing amounts of workload or user traffic by adding more resources or nodes.
Availability: The measure of how accessible and operational a system is, typically expressed as a percentage of uptime.
Reliability: The ability of a system to consistently perform its intended functions without failures or errors.
Latency: The time delay between initiating a request and receiving a response, often used to measure the responsiveness of a system.
Throughput: The rate at which a system can process and handle a certain amount of workload or data within a given timeframe.
Load balancing: Distributing incoming network traffic across multiple servers or resources to optimize resource utilization and improve performance.
Caching: Storing frequently accessed data in a temporary storage location (cache) to reduce the response time and improve system performance.
Sharding: Splitting a large database or dataset into smaller, more manageable parts (shards) to distribute the workload and improve scalability.
Database replication: Creating multiple copies (replicas) of a database to ensure high availability, fault tolerance, and read scalability.
Partitioning: Dividing a database or dataset based on specific criteria, such as ranges of values or hash values, to enable efficient data retrieval and storage.
Consistency: Ensuring that all copies of data in a distributed system are in sync and up-to-date, often achieved through techniques like eventual consistency or strong consistency.
Message queue: A component or system that enables asynchronous communication and decouples the sender and receiver by storing messages until they are processed.
Microservices: An architectural style that structures an application as a collection of small, loosely coupled, and independently deployable services.
API (Application Programming Interface): A set of rules and protocols that allows different software applications to communicate and interact with each other.
Fault tolerance: The ability of a system to continue functioning properly even in the presence of faults, failures, or errors.
Horizontal scaling: Adding more machines or nodes to distribute the workload across multiple servers, often achieved by using load balancers.
Vertical scaling: Increasing the resources (e.g., CPU, RAM) of a single machine to handle the increased workload or user traffic.
CAP theorem: Stating that in a distributed system, it is impossible to simultaneously guarantee consistency, availability, and partition tolerance.
CDN (Content Delivery Network): A network of geographically distributed servers that cache and deliver content to users based on their location, reducing latency and improving performance.
Disaster recovery: Planning and implementing strategies to recover a system or data after a catastrophic event or failure.
Term | Azure Service | AWS Service |
Scalability | Azure Autoscale | AWS Auto Scaling |
Availability | Azure Availability Zones | AWS Availability Zones |
Reliability | Azure Service Level Agreements (SLAs) | AWS Service Level Agreements (SLAs) |
Latency | Azure Traffic Manager | AWS Global Accelerator |
Throughput | Azure Load Balancer | AWS Elastic Load Balancer |
Load balancing | Azure Traffic Manager | AWS Elastic Load Balancer |
Caching | Azure Redis Cache | AWS ElastiCache |
Sharding | Azure Cosmos DB | AWS DynamoDB |
Database replication | Azure Cosmos DB | AWS RDS Multi-AZ |
Partitioning | Azure Cosmos DB | AWS DynamoDB |
Consistency | Azure Cosmos DB | AWS DynamoDB |
Message queue | Azure Service Bus | AWS Simple Queue Service (SQS) |
Microservices | Azure Service Fabric | AWS Elastic Beanstalk |
API | Azure API Management | AWS API Gateway |
Fault tolerance | Azure Availability Sets | AWS Auto Scaling Groups |
Horizontal scaling | Azure Virtual Machine Scale Sets | AWS Auto Scaling Groups |
Vertical scaling | Azure Virtual Machines | AWS Elastic Compute Cloud (EC2) |
CAP theorem | Azure Cosmos DB | AWS DynamoDB |
CDN | Azure Content Delivery Network (CDN) | AWS CloudFront |
Disaster recovery | Azure Site Recovery | AWS Disaster Recovery |
Please note that this table provides a general mapping between the terms and the respective services in Azure and AWS. It's important to refer to the official documentation of each cloud provider for detailed information on these services and their capabilities.