CAP Theorem

How it works

CAP Theorem
How it works
  1. Detect partition
  2. Pick CP or AP per operation
  3. Apply tactics (quorum/async)
  4. 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.