Hello sync-dev, Is there documentation on best practices for making a new data type that will eventually be synced? I'm trying to figure out a schema and storage backend for Form Autofill profiles (on desktop to start) and though we're not implementing the sync engine initially, I would like the data to be ready for sync without significant re-implemention of the storage.
On the schema side, an obvious thing is to use a GUID (shorter ones are preferred IIUC) instead of an incrementing ID for the primary key. It seems things like tracking of deleted records and how to handle conflicts between the server and client can be figured out when the engine is added but correct me if I'm wrong? Regarding the storage method, my understanding is that SQLite is used on mobile to provide access to the data from a separate non-Gecko sync process (at least on Android, not sure how things work on iOS). For desktop I would prefer to use a simple JSON file like logins.json since we don't need the features of an RDBMS but it's possible to re-use a SQLite backend between desktop and mobile then I'll consider it. I'm not sure if that's the case though since it seems like each client would write it's own native wrapper around the SQLite (I saw Passwords was moving to a Java implementation on Android though I'm not sure of the motivations for that TBH) in which case very little code would be shared. Thanks, Matthew Noorenberghe (:MattN)
_______________________________________________ Sync-dev mailing list Sync-dev@mozilla.org https://mail.mozilla.org/listinfo/sync-dev