Bayou, like Dynamo, guarantees availability and low latency. However, unlike Dynamo, which is a partially replicated storage system, Bayou is implemented as an optimistically fully replicated system where all the servers have all the data. The ways that Bayou resolve conflicts are a bit different from what Dynamo does. Bayou lets the application to write the reconciliation logic. Precisely, one “update” in Bayou consists of three components:1. The update itself 2. A dependency check, which checks if there is a conflict according to application logic. 3. A merge function specified by application to resolve conflicts. Bayou establishes a total order over all the operations by their timestamp and re-executes some operations if needed.