WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

System Design · Guru · question 85 of 100

How do you design a system with support for advanced consistency guarantees, such as snapshot isolation or external consistency?

📕 Buy this interview preparation book: 100 System Design questions & answers — PDF + EPUB for $5

When designing a distributed system, one of the key considerations is the level of consistency that is required. Different consistency models offer different guarantees about the state of the system, and the choice of model depends on the specific needs of the application.

Two advanced consistency models that are commonly used in distributed systems are snapshot isolation and external consistency.

Snapshot isolation is a consistency model that guarantees that each transaction sees a consistent snapshot of the database at a specific point in time. Under this model, each transaction executes as if it were the only transaction in the system, and is isolated from the effects of other concurrent transactions until it is committed. This ensures that each transaction sees a consistent view of the data, without the risk of reading uncommitted data or writing data that is subsequently overwritten by another transaction.

External consistency, on the other hand, guarantees that the system as a whole maintains consistency across all replicas, even in the presence of failures or network partitions. This consistency model requires careful coordination between nodes to ensure that updates are propagated in a consistent and reliable way, and that all nodes eventually converge to a consistent state.

To design a system with support for snapshot isolation, one approach is to use a database that supports this consistency model natively, such as PostgreSQL or Oracle. Alternatively, it is possible to implement snapshot isolation using a distributed transaction protocol such as Two-Phase Commit (2PC), or by using a distributed caching layer that provides snapshot isolation guarantees.

To design a system with support for external consistency, it is important to carefully consider the replication and synchronization mechanisms that will be used to ensure that all nodes eventually converge to a consistent state. This may involve using a consensus algorithm such as Paxos or Raft to coordinate updates, or using a distributed database that provides built-in support for external consistency.

Overall, the choice of consistency model will depend on the specific needs of the application, and the trade-offs between consistency, availability, and partition tolerance that are acceptable for the system.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic System Design interview — then scores it.
📞 Practice System Design — free 15 min
📕 Buy this interview preparation book: 100 System Design questions & answers — PDF + EPUB for $5

All 100 System Design questions · All topics