Consistency models describe what a reader is guaranteed to see after data is written. Under strong consistency, once a write succeeds every subsequent read returns it. Under eventual consistency, replicas may briefly disagree, but if writes stop they all converge to the same value. Most large systems mix the two: strong where correctness demands it, eventual everywhere else.
Strong consistency is like a shared Google Doc: everyone sees the edit instantly. Eventual consistency is like news travelling between villages: everyone hears it, but not at the same moment. For a like counter the second is fine; for a bank balance it isn't.
Replicated data lives in several places, and copying takes time. Waiting until every copy (or a quorum) agrees gives correct reads but costs latency and availability; answering from the nearest copy is fast but may be stale. The consistency model is how you decide, per feature, which cost to pay.
Strong: write is acknowledged only after it's durable on enough replicas
that every later read (from any node) sees it.
write x=2 --> [A] [B] [C] all/quorum updated --> ack
read x --> 2, from anywhere
Eventual: write acknowledged by one node; others catch up asynchronously.
write x=2 --> [A] ack [B] x=1 [C] x=1 (for a few ms/s)
read x --> 1 or 2 depending on the replica
later --> 2 everywhere (converged)
| Strong | Eventual (often + read-your-writes) |
|---|---|
| Account balances, payments, ledger | Like/view counts, follower counts |
| Inventory decrement, seat booking | News feed, timelines, recommendations |
| Unique usernames / short codes | Product catalog, search index |
| Locks, leader election, config | Analytics, logs, notifications |