SData Linking & Synchronisation
This section describes the SData Link & Sync protocol.
The first subsections describe the linking protocol:
The following subsections describe the synchronization algorithm, which is a variant of the well-known vector clock synchronization algorithm:
- Basic vector clock synchronization algorithm.
- Tick management
- Basic conflict handling
- "Digest" variant of the algorithm, which allows SData to efficiently synchronize collections of resources.
- Selecting changes with digest
- Conflict handing with digest
The following subsections describe the architecture of SData synchronization. They cover:
- Reference architecture
- Architecture variants
- Immediate and catch up synchronization modes.
Once the architecture has been laid out, we describe the protocol elements:
- Synchronization URLs
- Synchronization digest
- Per-resource synchronization state
- Synchronzation feed
- Synchronization metadata.
Then, we dissect a typical synchronization pass. We show how the engine interacts with the URLs to:
- Read the target digest
- Query the source synchronization feed
- Update the target
- Handle conflicts on the target side
- Iterate through source pages
- Log the results
We also give an example of immediate synchronization.
After this walkthrough, we describe advanced topics (not published yet):
Finally, we give some implementation hints (not published yet):