A system for synchronizing a local object model with a remote object model, comprising: at least one processor (602, 760); and memory (604, 762), operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the at least one processor to: receive a plurality of changes associated with the local object model, wherein each of the changes modifies at least one attribute state of at least one object in the local object model; identify outcome attribute states of objects that are modified by the plurality of changes; identify required attribute states of the objects for the plurality of changes, characterized in that the instructions further cause the processor to: build a dependency graph for the plurality of changes based on the identified required attribute states, the dependency graph comprising at least one reference from a first change of the plurality of changes to a second change of the plurality of changes, the reference indicating that an outcome attribute state of the second change is a required attribute state of the first change; and generate an ordered list of the plurality of changes based on the dependency graph, wherein the plurality of changes are received by comparing the objects in the local object model to a snapshot generated during a previous synchronization operation between the local object model and the remote object model. at least one processor (602, 760); and memory (604, 762), operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the at least one processor to: receive a plurality of changes associated with the local object model, wherein each of the changes modifies at least one attribute state of at least one object in the local object model; identify outcome attribute states of objects that are modified by the plurality of changes; identify required attribute states of the objects for the plurality of changes, receive a plurality of changes associated with the local object model, wherein each of the changes modifies at least one attribute state of at least one object in the local object model; identify outcome attribute states of objects that are modified by the plurality of changes; identify required attribute states of the objects for the plurality of changes, characterized in that the instructions further cause the processor to: build a dependency graph for the plurality of changes based on the identified required attribute states, the dependency graph comprising at least one reference from a first change of the plurality of changes to a second change of the plurality of changes, the reference indicating that an outcome attribute state of the second change is a required attribute state of the first change; and generate an ordered list of the plurality of changes based on the dependency graph, wherein the plurality of changes are received by comparing the objects in the local object model to a snapshot generated during a previous synchronization operation between the local object model and the remote object model. build a dependency graph for the plurality of changes based on the identified required attribute states, the dependency graph comprising at least one reference from a first change of the plurality of changes to a second change of the plurality of changes, the reference indicating that an outcome attribute state of the second change is a required attribute state of the first change; and generate an ordered list of the plurality of changes based on the dependency graph, wherein the plurality of changes are received by comparing the objects in the local object model to a snapshot generated during a previous synchronization operation between the local object model and the remote object model.