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

Reply via email to