1. A method for transforming operations on an attribute of data, the data being updated by multiple devices having a local copy of the data, each of the multiple devices having a memory and a processor, the method comprising: applying by a first device a first operation to a first copy of the data and sending an indication of the first operation to a second device, the first operation having a first operator and a first range, wherein the applying is performed by the processor of the first device executing instructions stored in the memory of the first device; applying by the second device a second operation to a second copy of the data and sending an indication of the second operation to the first device, the second operation having a second operator and a second range, wherein the applying is performed by the processor of the second device executing instructions stored in the memory of the second device; when the second device did not apply the first operation before applying the second operation, transforming by the first device the second operation to resolve any conflict with the first operation and applying the transformed second operation to the first copy of the data after the first operation has been applied, wherein the applying is performed by the processor of the first device executing instructions stored in the memory of the first device and further wherein when the first range and the second range overlap, transforming the second operation comprises adjusting a first end of the second range without adjusting a second end of the second range; and when the first device did not apply the second operation before applying the first operation, transforming by the second device the first operation to resolve any conflict with the second operation and applying the transformed first operation to the second copy of the data after the second operation has been applied, wherein the applying is performed by the processor of the second device executing instructions stored in the memory of the second device and further wherein when the first range and the second range overlap, transforming the first operation comprises adjusting a first end of the first range without adjusting a second end of the first range, wherein the transforming ensures that after applying the transformed operations the first copy and the second copy of the data are consistent.