Sync Client Overview
Since my sync implementation uses Firefox's Sync Server, one of the first steps I took was to run a copy of the server locally. Fortunately, Mozilla has great documentation so it was a straightforward process.
However, after talking with the Mozilla Sync team it appears that they will be rolling out SyncStorage v2 this summer so it's best if I started developing against the new API. The Mozilla Sync team is working on documentation at the moment, but the server repository is available. Unfortunately I'm still running into build issues with the new version...
The Sync Server acts as a dumb bucket for storage requiring the sync client to do most of the work. The server does track some public metadata, but the client is responsible for all of the encryption and decryption. This is a necessary requirement to ensure users' privacy.
The two main services I'll be using:
- Registration: user authentication and management
- Storage: send and store user profiles
User management is handled through a straightforward RESTful interface.