and user data across multiple devices. Mobile apps demand different choices of distributed
data consistency under a variety of usage scenarios. The apps also need to gracefully
handle intermittent connectivity and disconnections, limited bandwidth, and client and server
failures. The data model of the apps can also be complex, spanning inter-dependent
structured and unstructured data, and needs to be atomically stored and updated locally, on …