SData synchronizes resources between endpoints. Synchronization works by obtaining a batch of resource changes from a source endpoint and then applying this batch of changes to one or more target endpoints.
The endpoints are identified by their endpoint URL. They are the entry doors into the applications.
The processes that exchange data between applications to bring them in synch are run by components called “synchronization engines”.
The SData architecture is very flexible as far as the engine is concerned. It supports centralized scenarios in which a central engine drives all the interactions as well as decentralized scenarios where several engines cooperate.
The SData synchronization protocol is based on the exchange of synchrononization messages between endpoints.
A synchronization process is always driven by an engine. The engine works by reading messages from one endpoint URL and writing messages to another endpoint URL.
SData processes can operate in two modes: catch up or immediate.
In catch up mode, changes are not propagated immediately from the endpoint where they occur to the other endpoints. Instead, the engine runs discrete synchronization passes. In each pass, the engine propages the changes that have occured since the last pass from a source endpoint to one or more target endpoints.
In immediate mode, changes are propagated immediately from the endpoint where they occur. This mode provides a better end user experience because the endpoints are almost always in sync but it requires that the endpoints be accessible at all times.
The SData protocol supports a mix of catch up and immediate synchrononization.