I see why the 10MB limit.
What's the Pro/Con of this compare to just use sqlite on a dropbox volume?
From what I read, the API doesn't do any operational transformation such as merge, delta the changes' etc. The client app is expected to do it.
I see why the 10MB limit.
What's the Pro/Con of this compare to just use sqlite on a dropbox volume?
From what I read, the API doesn't do any operational transformation such as merge, delta the changes' etc. The client app is expected to do it.
In contrast, if you make a change to a sqlite database on two different devices, you now have two different files and no way to merge them. (There are people who have used Dropbox to sync sqlite databases this way, and they've ended up writing diff/patch over sqlite to merge changes. Using datastores is a lot simpler and more likely to be correct.)
Only the server has understanding of the most current states of the dataset and can try to sync up with multiple client at the same time.
The way it works in the Datastore API is that the client sends its changes to the server with an attached "parent revision." If that parent revision is the revision that the server has, then the change goes through (no conflict). If the revision doesn't match, then the change is rejected by the server, and it's up to the client to pull down the latest changes from the server, merge things (via, in the case of lists, OT), and then try again.