Bird
Raised Fist0
HLDsystem_design~7 mins

Consistency models (strong, eventual) in HLD - System Design Guide

Choose your learning style10 modes available
Problem Statement
When multiple copies of data exist across servers, they can become out of sync. This causes users to see different versions of the same data, leading to confusion, errors, or lost updates. Without a clear consistency approach, systems struggle to guarantee reliable and predictable data behavior.
Solution
Consistency models define rules for how and when updates to data become visible across all copies. Strong consistency ensures all users see the latest data immediately by synchronizing updates before confirming success. Eventual consistency allows temporary differences but guarantees all copies will converge to the same state over time, improving availability and performance.
Architecture
Client A
→Server 1
↓
Client B

This diagram shows clients interacting with multiple servers holding copies of data. Strong consistency synchronizes all servers before confirming updates, while eventual consistency allows asynchronous updates that converge over time.

Trade-offs
✓ Pros
→
Strong consistency guarantees users always see the latest data, preventing stale reads.
→
Eventual consistency improves system availability and reduces latency by allowing asynchronous updates.
→
Eventual consistency scales better in distributed systems with high write loads.
✗ Cons
→
Strong consistency can increase response times due to synchronization delays and reduce availability during network partitions.
→
Eventual consistency can cause temporary data conflicts and stale reads, requiring conflict resolution mechanisms.
→
Strong consistency is harder to implement in geo-distributed systems due to network latency.
Use strong consistency when correctness and up-to-date data are critical, such as financial transactions or inventory management. Use eventual consistency for high-scale, distributed systems where availability and low latency are more important than immediate consistency.
Avoid strong consistency in systems with high network latency or frequent partitions where availability is critical. Avoid eventual consistency when stale or conflicting data can cause serious errors or user dissatisfaction.
Real World Examples
Amazon DynamoDB
Uses eventual consistency by default to provide low-latency reads across distributed data centers, allowing high availability even during network partitions.
Google Spanner
Provides strong consistency globally by synchronizing data with precise time coordination, ensuring all clients see the latest data immediately.
Facebook
Uses eventual consistency for social feed updates to improve performance and availability, accepting temporary stale views for users.
Alternatives
Causal consistency
Ensures operations that are causally related are seen in order, but unrelated operations may be seen out of order.
Use when: Choose when you need a balance between strong and eventual consistency, preserving cause-effect relationships without full synchronization.
Read-your-writes consistency
Guarantees a user always sees their own updates immediately, but not necessarily others' updates.
Use when: Choose when user experience requires immediate visibility of their own changes but global synchronization is not needed.
Summary
Consistency models define how data updates propagate and become visible across distributed systems.
Strong consistency ensures all users see the latest data immediately but can reduce availability and increase latency.
Eventual consistency allows temporary differences but improves availability and scales better in distributed environments.

Practice

(1/5)
1. Which statement best describes strong consistency in distributed systems?
easy
A. All users see the same data immediately after an update.
B. Data updates are delayed and may differ temporarily between users.
C. Data is never synchronized between nodes.
D. Users see different versions of data permanently.

Solution

  1. Step 1: Understand strong consistency definition

    Strong consistency means every read returns the most recent write, so all users see the same data instantly.
  2. Step 2: Compare options with definition

    All users see the same data immediately after an update. matches this definition exactly, while others describe delayed or inconsistent views.
  3. Final Answer:

    All users see the same data immediately after an update. -> Option A
  4. Quick Check:

    Strong consistency = immediate data sync [OK]
Hint: Strong consistency means instant data visibility everywhere [OK]
Common Mistakes:
  • Confusing strong consistency with eventual consistency
  • Thinking data can be permanently inconsistent
  • Assuming delays are allowed in strong consistency
2. Which of the following is a correct characteristic of eventual consistency?
easy
A. No synchronization happens between nodes.
B. All nodes update simultaneously with no delay.
C. Data is always consistent after every write operation.
D. Data updates propagate over time and become consistent eventually.

Solution

  1. Step 1: Recall eventual consistency meaning

    Eventual consistency means updates may take time to reach all nodes, but eventually all nodes will have the same data.
  2. Step 2: Match options to definition

    Data updates propagate over time and become consistent eventually. correctly states that data updates propagate over time and become consistent eventually.
  3. Final Answer:

    Data updates propagate over time and become consistent eventually. -> Option D
  4. Quick Check:

    Eventual consistency = delayed but eventual sync [OK]
Hint: Eventual consistency means data sync happens over time [OK]
Common Mistakes:
  • Assuming immediate synchronization in eventual consistency
  • Confusing no synchronization with eventual consistency
  • Thinking eventual consistency means permanent inconsistency
3. Consider a distributed database using eventual consistency. If a user updates a record on one node, what is the expected behavior immediately after the update?
medium
A. Other nodes may temporarily show the old record until synchronization completes.
B. All other nodes instantly reflect the updated record.
C. The update is rejected until all nodes confirm availability.
D. The record is deleted from all nodes except the updated one.

Solution

  1. Step 1: Analyze eventual consistency update behavior

    In eventual consistency, updates propagate asynchronously, so other nodes may temporarily have stale data.
  2. Step 2: Evaluate options against this behavior

    Other nodes may temporarily show the old record until synchronization completes. correctly states that other nodes may show old data until synchronization finishes.
  3. Final Answer:

    Other nodes may temporarily show the old record until synchronization completes. -> Option A
  4. Quick Check:

    Eventual consistency = temporary stale reads [OK]
Hint: Eventual consistency allows temporary stale data [OK]
Common Mistakes:
  • Expecting instant update on all nodes
  • Confusing update rejection with consistency model
  • Assuming data deletion on other nodes
4. A system claims to provide strong consistency but users report seeing outdated data after updates. What is the most likely cause?
medium
A. The system uses synchronous replication correctly.
B. The system is actually using eventual consistency under the hood.
C. Users are refreshing their data too often.
D. The network is too fast causing data to update too quickly.

Solution

  1. Step 1: Understand strong consistency guarantees

    Strong consistency guarantees all users see the latest data immediately after update.
  2. Step 2: Analyze why outdated data appears

    If users see outdated data, the system likely does not enforce strong consistency, possibly using eventual consistency instead.
  3. Final Answer:

    The system is actually using eventual consistency under the hood. -> Option B
  4. Quick Check:

    Outdated data means no strong consistency [OK]
Hint: Outdated data means strong consistency is not enforced [OK]
Common Mistakes:
  • Blaming network speed for outdated data
  • Assuming user refresh frequency causes inconsistency
  • Confusing synchronous replication with eventual consistency
5. You are designing a global e-commerce platform. Which consistency model should you choose for the inventory stock count to ensure customers never buy more items than available, and why?
hard
A. Eventual consistency, because it improves performance and availability.
B. No consistency model is needed for inventory data.
C. Strong consistency, because it guarantees all users see the latest stock count immediately.
D. Use eventual consistency with no synchronization.

Solution

  1. Step 1: Identify critical data requirements

    Inventory stock count must be accurate to prevent overselling, requiring immediate data correctness.
  2. Step 2: Choose consistency model based on requirements

    Strong consistency ensures all users see the latest stock count instantly, preventing overselling.
  3. Final Answer:

    Strong consistency, because it guarantees all users see the latest stock count immediately. -> Option C
  4. Quick Check:

    Critical data needs strong consistency [OK]
Hint: Critical data needs strong consistency for accuracy [OK]
Common Mistakes:
  • Choosing eventual consistency for critical stock data
  • Ignoring consistency needs for inventory
  • Assuming no consistency is acceptable
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard