I like the level of detail in the doc. You didn't include Tabs as a data type, but I think it's pretty easy to infer a structure based on the definition of the other types. I have a few questions / comments:
"We assume that all changes to the local database occur in a mostly-connected state. In other words, people don't change passwords or bookmarks without network connectivity." Given that mobile devices can be without mobile data service for non-trivial amounts of time, do we need to add code that stops a user from editing passwords or bookmarks? What about closing or opening offline webapps in tabs? "We use push notifications to shorten the collision window" This could be possible on Android, but the system already has a Sync system built in. We should take a look to see if push could be used within that system. I'm just trying to go with the grain of the OS instead of fighting it. "Replicate from (overwrite local passwords with server values)." This sounds like it could cause too much data loss. We'd need to think about this a bit more. If the user has a set of passwords on a mobile device, for pages that might have a mobile-specific domain or for webapps they only frequent on mobile devices, it could wipe away a large chunk of data that is not on the server. "We expect dozens of bookmarks, and many hundreds worst-case" Do we truncate or ignore trees that go over some predefined size limit? Or do we continue to try to sync even large bookmark trees? "Clients keep the current revision of a doc in shadow couchdb." Does this imply that a copy of the full bookmark tree would be kept on the device? What is the shadow for history or passwords since each "record" is a doc? "Clients that have sync enabled should use our push notifications protocol to listen to server changes." You might be making too much of an assumption about FxAndroid using Gecko to do the syncing. That likely won't be the case. It is an Android service using Java.
_______________________________________________ Sync-dev mailing list [email protected] https://mail.mozilla.org/listinfo/sync-dev

