- Request Collapsing:
- Request collapsing refers to the process of combining multiple similar or identical requests into a single request to reduce the load on a system. This can help improve efficiency and reduce redundant processing.
- Load Balancing:
- Load balancing involves distributing incoming network traffic across multiple servers or resources to ensure optimal utilization and prevent any single server from becoming overloaded.
- Scaling:
- Scaling refers to the process of increasing a system’s capacity to handle more users, data, or traffic. It can be done by either vertical scaling (upgrading the resources of an existing server) or horizontal scaling (adding more servers to a network).
- Latency:
- Latency is the amount of time it takes for a request to travel from the sender to the receiver and back. It’s a critical metric for system performance, and lower latency is generally preferred.
- Throughput:
- Throughput measures the number of units of work (e.g., requests, transactions) a system can handle in a given period of time. It’s an indicator of a system’s processing capacity.
- Database Indexing:
- Database indexing is a technique used to improve query performance by creating additional data structures (indexes) that allow for faster retrieval of specific records in a database.
- Cache:
- A cache is a temporary storage area that holds frequently accessed data, allowing for faster retrieval in subsequent requests. Caching is used to improve performance and reduce the need to fetch data from slower sources.
- Distributed System:
- A distributed system is a collection of independent computers or nodes that work together as a single system to achieve a common goal. These nodes communicate and coordinate with each other to complete tasks.
- CAP Theorem:
- The CAP theorem, also known as Brewer’s theorem, states that in a distributed system, it is impossible to simultaneously achieve Consistency, Availability, and Partition tolerance. Design decisions must prioritize two out of the three.
- Redundancy:
- Redundancy involves having backup systems, components, or processes in place to ensure continuity of operation in case of a failure or error.
- Fault Tolerance:
- Fault tolerance is the ability of a system to continue functioning in the presence of faults or errors. It involves detecting, isolating, and recovering from failures.
- Microservices:
- Microservices is an architectural style that structures an application as a collection of loosely coupled, independently deployable services. Each service represents a specific business capability and communicates through APIs.
- Database Sharding:
- Database sharding involves partitioning a database into smaller, more manageable pieces (shards) to distribute the load and improve performance in high-traffic systems.
- Consistency:
- Consistency in a distributed system refers to the property that ensures all nodes in the system have a consistent view of the data. This means that once a write operation is acknowledged, all subsequent read operations will return the updated data.
- Availability:
- Availability is the property of a system that guarantees that it remains operational and accessible, even in the event of failures. It’s crucial for ensuring uninterrupted service to users.
- Partition Tolerance:
- Partition tolerance is the ability of a distributed system to continue operating even if network partitions (communication failures) occur between nodes. This is a key consideration in the CAP theorem.
- ACID Properties:
- ACID (Atomicity, Consistency, Isolation, Durability) are a set of properties that guarantee reliability and correctness of transactions in a database management system. These properties ensure that database transactions are processed reliably.
- BASE Properties:
- BASE (Basically Available, Soft state, Eventual consistency) is an alternative to ACID, often used in NoSQL databases and distributed systems. It prioritizes availability and eventual consistency over strict transactional guarantees.
- Caching Strategies:
- Caching involves storing frequently accessed data in a temporary storage area (cache) to improve performance. Strategies include write-through, write-around, and write-back caching, each with different trade-offs.
- Message Queue:
- A message queue is a communication system that allows different components or services within a system to send and receive messages asynchronously. It helps decouple the sending and receiving of messages.
- Design Patterns:
- Design patterns are established solutions to common problems in software design. In system design, patterns like the Singleton pattern, Factory pattern, and Observer pattern can be applied to create scalable and maintainable architectures.
- Horizontal Scaling vs Vertical Scaling:
- Horizontal scaling involves adding more machines or nodes to a system to handle increased load. Vertical scaling, on the other hand, involves upgrading the resources (CPU, RAM, etc.) of existing machines to handle more load.
- CDN (Content Delivery Network):
- A CDN is a distributed network of servers located in different geographic locations. It is used to deliver content (e.g., images, videos, scripts) to users with high availability and low latency.
- Rate Limiting:
- Rate limiting is a technique used to control the rate at which a user or system can make requests to a server or service. It helps prevent abuse and ensures fair use of resources.
- Consistent Hashing:
- Consistent hashing is a technique used in distributed systems to efficiently distribute and balance data across nodes. It minimizes the need for rehashing when nodes are added or removed from the system.
- Polyglot Persistence:
- Polyglot persistence is the practice of using multiple types of databases (e.g., relational, NoSQL) to store different types of data within a system. It allows you to choose the most appropriate storage solution for each type of data.
What is System Design?
System design is the process of defining the architecture, modules, interfaces, and data for a system to satisfy specified requirements. It involves the definition of the structure and behavior of the system and its components, the constraints and assumptions that...

0 Comments