CAP Theorem
How it works
- Detect partition
- Pick CP or AP per operation
- Apply tactics (quorum/async)
- Reconcile or fail safely
🎯 What is the CAP Theorem?
The CAP theorem states that in the presence of a network partition, a distributed system can provide only two of the following three guarantees:Node 1
Node 2
Node 3
Consistent: All nodes see the same data
Available: System remains operational
Partition Tolerant: Continues to operate despite network failures
⚖️ Trade-offs
Depending on the system design and requirements, different trade-offs can be made:CP Systems (Consistency + Partition Tolerance)
- Sacrifice availability during network partitions
- Examples: MongoDB, Redis, HBase
- Use case: Financial systems, inventory management
AP Systems (Availability + Partition Tolerance)
- Sacrifice consistency during network partitions
- Examples: Cassandra, DynamoDB, CouchDB
- Use case: Social media feeds, content delivery
CA Systems (Consistency + Availability)
- Only possible without network partitions
- Examples: Traditional RDBMS in single location
- Not realistic for distributed systems
Real-world Implications
- Most systems accept Partition Tolerance (P) as networks fail.
- During a partition, choose Consistency (CP) or Availability (AP) per use case.
- Many stores expose tunable consistency to dial per operation.
Practical Guidance
- CP (Consistency + Partition tolerance)
- Choose for: payments, inventory counts, auth, uniqueness constraints.
- Tactics: leader/follower, quorum writes, synchronous replication.
- Cost: higher write latency, possible unavailability when partitioned.
- AP (Availability + Partition tolerance)
- Choose for: social feeds, analytics, logs, recommendations.
- Tactics: async replication, conflict resolution, CRDTs, last-write-wins.
- Cost: clients may read stale data; require reconciliation.
📐 Quick Diagram
Network Partition
A ───X─── B
CP: Pause one side or error on conflicting ops.
AP: Accept writes on both sides; reconcile later.
❓ Interview Q&A (concise)
- Q: Does CAP apply outside partitions? A: CAP concerns partitions; PACELC extends trade-offs to normal operation.
- Q: Can a system be CA at scale? A: Only if you assume no partitions (single node/zone), which is unrealistic.
- Q: How to reconcile in AP systems? A: Version vectors, CRDTs, idempotent merges, business-specific rules.