5. A computer-implemented method for synchronizing a first data state on at least two computing devices, the method comprising: maintaining, on a first computing device of the at least two computing devices, a first collection of change descriptors representative of changes to the first data state; sending, to another computing device, a first one or more change descriptors from the first collection, the first one or more change descriptors based at least in part on a first value indicative of a last position of change descriptors stored in both the first collection and in a second collection of change descriptors maintained by a second computing device of the at least two computing devices; receiving a second one or more change descriptors, the second one or more change descriptors based at least in part on resolving conflicts between the first one or more change descriptors and changes to the first data state made on the second computing device; appending the second one or more change descriptors to the first collection; and updating the first value based at least in part on a last position of a change descriptor in the first collection subsequent to appending the second one or more change descriptors.
5. A computer-implemented method for synchronizing a first data state on at least two computing devices, the method comprising: maintaining, on a first computing device of the at least two computing devices, a first collection of change descriptors representative of changes to the first data state; sending, to another computing device, a first one or more change descriptors from the first collection, the first one or more change descriptors based at least in part on a first value indicative of a last position of change descriptors stored in both the first collection and in a second collection of change descriptors maintained by a second computing device of the at least two computing devices; receiving a second one or more change descriptors, the second one or more change descriptors based at least in part on resolving conflicts between the first one or more change descriptors and changes to the first data state made on the second computing device; appending the second one or more change descriptors to the first collection; and updating the first value based at least in part on a last position of a change descriptor in the first collection subsequent to appending the second one or more change descriptors. 11. The method of claim 5 , further comprising: determining that a change descriptor of the first one or more change descriptors does not conflict with a change descriptor of the second one or more change descriptors, the determining based at least in part on comparing references to positions of change descriptors in the first collection.