Kritim Yantra
Apr 12, 2025
In distributed systems, keeping data consistent and available across multiple servers is a major challenge. Should all users see the same data at the same time? What happens if a server crashes? How do you handle conflicts?
This blog covers:
✔ Consistency models (Strong, Eventual, Causal).
✔ Replication strategies (Leader-Follower, Multi-Leader, Peer-to-Peer).
✔ Real-world examples (DynamoDB, PostgreSQL, Cassandra).
✔ Trade-offs between consistency, latency, and fault tolerance.
Let’s dive in!
Replication stores copies of data on multiple servers to:
✅ Improve fault tolerance (if one server fails, others take over).
✅ Reduce latency (users read from the nearest replica).
✅ Increase read throughput (load balancing across replicas).
Example:
Example:
-- PostgreSQL with synchronous replication:
UPDATE accounts SET balance = 100 WHERE user_id = 1;
-- Blocks until all replicas confirm the write.
Example:
Example:
Trade-offs:
✔ Simple to implement.
❌ Leader failure requires failover.
Trade-offs:
✔ Higher availability (no single point of failure).
❌ Conflict resolution is hard.
Trade-offs:
✔ Extremely fault-tolerant.
❌ Complex to manage.
When two servers modify the same data simultaneously:
| Strategy | How It Works |
|---|---|
| Last Write Wins (LWW) | Uses timestamps (risks data loss). |
| Version Vectors | Tracks causality to merge changes. |
| CRDTs (Conflict-Free Data Types) | Automatically resolves conflicts (e.g., counters, sets). |
Example:
✅ Use strong consistency for financial data.
✅ Favor eventual consistency for high scalability (e.g., social media).
✅ Monitor replication lag (stale reads = unhappy users).
✅ Test failover scenarios (what happens if a leader crashes?).
Which topic should I cover next? Let me know in the comments! 🚀
Which consistency model does your app use? Share below! 👇
No comments yet. Be the first to comment!
Please log in to post a comment:
Sign in with Google
Kritim Yantra
Kritim Yantra
Kritim Yantra