User Services/Sync
The new home of all things related to the design & development of the New Sync service that is slated to replace the existing Sync service in late 2013/early 2014. A working name for this project has been PiCL ("Profile in the Cloud"), and the below documents may use this acronym.
Contents
What Problems Are We Solving?
Right now we have four problems with our existing Sync service. In priority order they are:
1. Usability: First, it's too hard to set up - only 1% of our users have actually done so. Second, it's too hard to add a second device - only 20% of sync users have more than one device (and hence are actually getting any value at all from sync).
2. Quality: The existing Sync codebase and protocol are unable to adequately address the reliability, performance, fault recovery, and efficiency requirements of a high-usage sync system.
3. Scalability: Our sync servers are failing far too frequently resulting in user facing outages.
4. Features: Features we want to build require that we can access data via web apps, which the current sync product cannot support. Competing browsers are building interesting features that can do this. We are at a disadvantage, and it's not for want of ideas.
Upcoming releases
Current
Archived
Meetings
Archive the of the Engineering meetings can be viewed at:
Product Requirements and User Stories
- Firefox for Android: https://wiki.mozilla.org/Mobile/Projects/Firefox_Accounts_with_Sync_1.1_integration
- Firefox for Desktop: https://wiki.mozilla.org/User_Services/Sync/Relaunch#Desktop_MVP
UX Designs
- "Sign in to Desktop Firefox" mocks: http://people.mozilla.com/~zfang/FirefoxAccount/PiCL_0710.pdf
- "Sign in to Android Firefox" mocks: https://www.dropbox.com/s/qyvd2p71jifqnmi/picl%20sign%20in%20flows%20android.psd
- Sign in/Sign up Usability Test Results: http://people.mozilla.org/~jgruen/pdx_deck/
Technical Materials
- High level architecture
- Dev mailing list: https://mail.mozilla.org/listinfo/sync-dev
- Meeting notes
- Authentication
- Protocol: Old: Identity/AttachedServices/KeyServerProtocol Current: https://github.com/mozilla/fxa-auth-server/wiki/onepw-protocol
- Code: https://github.com/mozilla/fxa-auth-server
- API documentation: https://github.com/mozilla/fxa-auth-server/blob/master/docs/api.md
- Dev servers
- FxA API: http://idp.dev.lcip.org
- FxA Jelly: http://accounts.dev.lcip.org/flow (code at https://github.com/mozilla/firefox-account-bridge)
- Key stretching performance tests: https://wiki.mozilla.org/Identity/AttachedServices/Key_Stretching_Performance_Tests
- Service discovery
- Device management (sits next to/in key server): TBD
- Meta server: User_Services/Meta
- Milestone 1 Storage
- Docs
- Token server API: https://docs.services.mozilla.com/token/apis.html
- Dev servers
- Token server: http://auth.oldsync.dev.lcip.org/
- Storage server: http://db1.oldsync.dev.lcip.org/
- README: https://mail.mozilla.org/pipermail/sync-dev/2013-August/000392.html
- Docs
- Storage Research
- Identity/CryptoIdeas/06-Queue-Sync-CouchDB
- User:Rnewman/TreeSync
- Sync 2.0: http://docs.services.mozilla.com/storage/apis-2.0.html
- Draft data formats: https://mobile.etherpad.mozilla.org/draft-bookmark-password-formats
- Existing sync data formats: http://docs.services.mozilla.com/sync/objectformats.html
- Design musings
- Enumeration of different failures and in existing Sync product: https://mobile.etherpad.mozilla.org/sync-failures
- Design contraints: https://services.etherpad.mozilla.org/2019
- Exploration of the design space: https://mobile.etherpad.mozilla.org/sync-design-faq
- User data stats in the existing Sync product: https://id.etherpad.mozilla.org/picl-user-model
- Technical design review meeting notes: https://etherpad.mozilla.org/identitydesignreview
- FxA client state transitions: User_Services/Sync/FxA_Client_States
- QA plan: https://wiki.mozilla.org/QA/Services/SyncTestPlanV1
- Server deployment planning: Identity/AttachedServices/DeploymentPlanning
- Bugzilla Meta bugs/dependency trees
- Product user stories: https://bugzilla.mozilla.org/showdependencytree.cgi?id=909322&hide_resolved=0
- Desktop: https://bugzilla.mozilla.org/showdependencytree.cgi?id=905997&hide_resolved=0
- Android: https://bugzilla.mozilla.org/showdependencytree.cgi?id=799726&hide_resolved=0
- Server-side: https://bugzilla.mozilla.org/showdependencytree.cgi?id=907475&hide_resolved=0
- ELM Nightly Builds
- Desktop
- Android
User Research
TBD
Team
Identity
- Lloyd Hilaiel
- Tauni Oxborrow
- Chris Karlof
- Brian Warner
- Danny Coates
- Zach Carter
- Vlad Filippov
UX
- John Gruen
- Ian Barlow
- Zhenshuo Fang
Services
- Mark Mayo
- Ryan Kelly
Product
- Karen Rudnitski
- Deb Richardson
- Rob Lord
- Chris Lee
Desktop
- Gavin Sharp
- Justin Dolske
Android
- Mark Finkle
- Richard Newman
- Nick Alexander
FirefoxOS
- Dale Harvey
QA
- James Bonacci