Blog Hoch
Apr 2026·3 tup leghDe'wI' chenmoHta'

CAP Theorem, real examples rap

#distributed-systems#databases#architecture

distributed database vendor Hoch fast, consistent, always available claim. CAP theorem suspicious pitch vaD qatlh: network partition Daq Consistency, Availability, Partition tolerance Dung cha' neH keep laH, 'ej partition tolerance optional pagh - real choice consistency 'ej availability Dung.

wej letters nuq

  • Consistency (C): read Hoch most recent write nob, error pagh. nodes Hoch same data same time legh.
  • Availability (A): request Hoch (non-error) response tlhap (most recent write ghaj guarantee pagh).
  • Partition tolerance (P): nodes Dung messages arbitrary number dropped delayed 'ach system Qu'.

Network partitions qaS: switch fail, data-center link saturate, node NIC flake. network unreliable opt out laHbe' - P real design choice pagh; distributed systems fact. C 'ej A Dung choose partition Dung. partition pagh vaj well-built system both nob laH.

"pick two" misleading

classic "pick two of three" CA valid option suggest (partition tolerance turn off laH). laHbe' - system wa' machine Daq network calls pagh vaj. practice Daq theorem wa' question: partition qaSDI' system available (consistency sacrifice) pagh consistent (availability sacrifice)?

CP practice: leader-based configuration store

configuration service Raft-based store (etcd, Consul, ZooKeeper). writes leader Daq jaH, majority nodes replicate acknowledge qaSpa'.

Client -> Leader -> [replicate to majority] -> ack -> Client

network partition cluster cha' groups split vaj majority nodes ghaj group neH leader elect 'ej writes accept. minority side writes accept Qo' - errors return (stale conflicting data serve risk pagh).

# Simplified: a node in the minority partition rejects writes
def handle_write(request):
    if not self.has_quorum():
        raise Unavailable("no quorum: refusing to risk inconsistent write")
    return self.replicate_and_commit(request)

CP: consistency preserved (minority side availability sacrifice). configuration data, leader election, distributed locks vaD Dun - stale lock owner serve temporary outage law' Qab.

AP practice: shopping cart service

shopping cart Dynamo-style database (Cassandra, DynamoDB) multiple replicas regions Daq. partition Dung replica Hoch independently writes accept.

# Simplified: every reachable replica accepts writes during a partition
def handle_write(request):
    self.local_store.put(request.key, request.value, timestamp=now())
    return Ack()  # never blocks on other replicas

cha' regions same cart diverging versions ghaj. partition heal vaj reconciliation strategy poQ: last-write-wins timestamp, vector clocks, application-level merge (items union - side wa' choose pagh).

# A simple merge strategy: union cart items instead of picking a winner
def merge_carts(cart_a, cart_b):
    return {**cart_a, **cart_b}  # naive union; real systems need care around removals

AP: cart service partition both sides Daq available, correctness after fact repair (write Daq enforce pagh). shopping cart vaD available-but-eventually-consistent consistent-but-down law' Dun - browsing checkout Dung "service unavailable" vay' neH pagh.

single system-wide choice pagh

useful realization: CAP per operation (database product whole pagh). real systems law' both mix: DynamoDB table same Daq eventually-consistent 'ej strongly-consistent reads offer. PostgreSQL synchronous replication CP (primary writes) 'ach asynchronous standbys stale (AP-leaning) reads serve configure laH.

-- PostgreSQL: synchronous_commit controls where you sit between C and A
SET synchronous_commit = 'on';   -- wait for replica ack: favors consistency
SET synchronous_commit = 'off';  -- don't wait: favors availability/latency

individual operations level Daq design: vam write linearizable consistency poQ'a'? vam read seconds stale tolerate'a'? per-operation answer (per-database pagh) CAP design tool earn.

PACELC: theorem underrated sequel

CAP partition Dung behavior neH describe. Daniel Abadi PACELC extension common case chel: partition pagh 'ach latency consistency trade. If Partitioned, Availability pagh Consistency; Else (normal), Latency pagh Consistency.

remote region synchronously replicate system strong consistency tlhap, write Hoch cross-region round-trip pay. asynchronously replicate system low latency tlhap 'ach readers stale data legh (network healthy 'ach). trade-off request Hoch Daq (rare partition events neH pagh) - day-to-day system design Daq partition case law' qatlh.

design vaj apply

  • operations locks/leader-election/inventory-decrement style (CP poQ) vs cart/profile/analytics style (AP tolerate) identify.
  • marketing claim "always consistent always available" database choose Qo' - combination real partition survive pagh. nodes reach laHbe'DI' nuq Qu' specifically jey.
  • consistency knob per-cluster pagh per-request check. DynamoDB 'ej Cassandra per read choose - usually right granularity.
  • PACELC qaw: consistency choice latency cost happy path Daq (outage risk cost neH pagh).

CAP theorem distributed systems anxious qatlh pagh - database Hoch build qaSpa' checklist question: partition hit vaj requests nuq qaS exactly, 'ej trade-off nuq side data actually poQ?

chu'Node.js Daq Pub/Sub system machqanJWT Authentication Qu' lIj