ThingWorx Edge Java SDK > Application Details > Synchronization Framework
Synchronization Framework
Synchronization is a response to a binding request that tells your device what properties and services the ThingWorx Platform wants to know about. Pushing data involves sending property change messages to the platform. Synchronization occurs for each Thing independently.
* 
Pushing data before Synchronization completes will cause data loss!
Before the synchronization process completes, the edge client defaults to never pushing any property updates. For this reason, data loss happens. Every time you edit a Thing on the platform, the platform again tells the device what properties it cares about. It is important that you wait until this list arrives the first time.
This process of binding remote data to properties of a server Remote Thing allows you to compose server Remote Things from the properties of multiple remote Virtual Things, enabling multiple remote devices or machines to contribute to the properties of a single Remote Thing on the server. One remote device or machine could contribute data collected from a real sensor and push it to the server. The server could then notify a remote application that data had changed. That remote application could update itself and then contribute additional properties back to the server, based on its own calculations
When it receives sensor data, a Virtual Thing posts this data to the server cache. A Remote Thing on the server is bound to this property. This Remote Thing subscribes to changes in this property value. When this value changes, the subscription function is called. This subscription function notifies a Virtual Thing in a remote application that new data is available. This update could also be done using bindings since they can also trigger code within the remote machine.
The result from the ThingWorx Platform perspective is that there is a single Remote Thing, whose state (its properties) is updated from multiple sources but appears to be a single entity as far as its use in mashups is concerned. At the same time, it is providing a real-time, synchronized copy of its state that you can then use to manipulate the Remote Thing.
Was this helpful?