> GET /account/devices
> 
>  {
>    "<device-uuid>": {"name": "Ryan's Laptop", "version", "A.B.X"},
>    "<device-uuid>": {"name": "Ryan's Phone", "version", "A.B.Y"},
>  }

My conception of this is similar, but more focused on capability rather than 
description:

  {
    "uuid": {"name": "Laptop", "capabilities": {"org.mozilla.sync.1": [1, 2]}}
  }

That is, a device would advertise the services and service versions it 
supported. A big change like Sync 1.1 to Sync.next, run in parallel, would be a 
major switch; a storage version change would be a version switch, and so on 
down the line for data formats.

(If this is what you meant by "version", then great; I just mean "don't require 
a reverse lookup table in each client".)

This is a generalization of what I sketched out for 
<https://bugzilla.mozilla.org/show_bug.cgi?id=825731>.

There is some fuzziness here (and, I think, in your proposal too) around 
precisely which client decides on which service and version to use, and how to 
tell other clients that a switch has occurred (meta/global?), and when to 
reupload data etc. -- lots of opportunity for race conditions -- but I think 
it's tractable.

>  4) TreeSync enabled devices check their peers through the device
>     management api, and delay upgrading to TreeSync until they are
>     all at some minimal version that's capable of supporting it.

That's exactly what I'd envisioned for Bug 825731, at a storage format level.

Note that there's some complexity -- what if you turn off an old device and 
never remove it from the set? do we wait forever? need UI here, etc. -- but the 
principle makes sense, and the mainstream case is simple enough.

> More generally: if this really is the only other
> absolutely-must-have-before-flag-day feature, then let's get it nailed
> down ASAP.

Not necessarily the *only* (need to consult MVP; there might be more to device 
management that we need to underpin sooner rather than later) but the ability 
to handle future upgrades through version negotiation like this has certainly 
been something I've been harping on about for ages :D
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to