What is CAP theorem?
The three components of the CAP theorem are Consistency, Availability, and Partition Tolerance.
- Consistency:
- This means that all nodes in a distributed system have the same data at the same time. In simpler terms, if you read data from one part of the system, you should get the most recent write from another part of the system.
- Availability:
- This implies that every request to the system receives a response without a guarantee that it contains the most recent version of the data. In other words, the system is always available for reads and writes, even if the data might be slightly out of date.
- Partition Tolerance:
- This refers to the system’s ability to continue functioning even if communication between nodes is lost or delayed. Partitions can occur due to network issues, and a partition-tolerant system can still operate despite these communication problems.
The CAP theorem states that in a distributed system, you can only achieve two out of the three: Consistency, Availability, and Partition Tolerance. This means that if you prioritize Consistency, you may sacrifice Availability or Partition Tolerance, and vice versa.
Top Most Asked System Design Interview Questions
System Design is defined as a process of creating an architecture for different components, interfaces, and modules of the system and providing corresponding data helpful in implementing such elements in systems.
Table of Content
- 1. Why is it better to use horizontal scaling than vertical scaling?
- 2. What is sharding, and how does it improve database scalability?
- 3. What is CAP theorem?
- 4. What do you understand by load balancer? Why is it important in system design?
- 5. What are the various Consistency patterns available in system design?
- 6. When would you use cache layer of a system?
- 7. A reverse proxy in a web architecture means what?
- 8. Outline the role played by a CDN in Web Architecture.
- 9. Describe the concepts of RESTful API principles.
- 10. How does a message broker operate within a distributed environment?
- 11. Why should we use NoSQL database?
- 12. What does the Singleton Design Pattern aim at?
- 13. Discuss what is consistent hashing ?
- 14. Why is the two-phase commit protocol important?
- 15. What are vector clocks in the context of the distributed system?
- 16. Explain the function of consensus algorithms in distributed systems.
- 17. How does the “graceful degradation” principle impacts on system design?
- 18. What are the bottlenecks in system design?
- Conclusion