#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 25 of 27medium

What is the CAP theorem?

Understanding distributed database trade-offs.

What You'll Learn

  • What CAP theorem states
  • Trade-offs explained
  • Database classifications

CAP Theorem

In a distributed system, you can only guarantee two of three properties:

  • Consistency - Every read gets the most recent write
  • Availability - Every request receives a response
  • Partition Tolerance - System works despite network failures

The Trade-offs

CP (Consistency + Partition Tolerance)

code.jsJavaScript
- Sacrifices availability during partitions
- Returns error if can't ensure consistency
- Examples: MongoDB, Redis, HBase

AP (Availability + Partition Tolerance)

code.jsJavaScript
- Sacrifices consistency during partitions
- May return stale data
- Examples: Cassandra, CouchDB, DynamoDB

CA (Consistency + Availability)

code.jsJavaScript
- Only possible without network partitions
- Single-node databases
- Examples: Traditional RDBMS (single node)

Real-World Example

code.jsJavaScript
Scenario: Network partition between data centers

CP System (MongoDB):
- Primary in DC1 becomes unavailable
- Writes rejected until partition heals
- Reads may be blocked

AP System (Cassandra):
- Both DCs continue accepting writes
- Eventual consistency after partition heals
- May have conflicting data to resolve

MongoDB's Approach

code.jsJavaScript
// Tunable consistency with read/write concerns
// Strong consistency
db.users.find().readConcern("majority");

// Available but potentially stale
db.users.find().readConcern("local");