Glossary#
These are the sync terms calendaring-sync’s pages use. Design explains why each part works the way it does, and Adapters explains what each term means for a given protocol.
- adapter#
The part that connects calendaring-sync to one kind of server. It asks the server what changed, hands the answer to the core as a change set, and sends your pushes.
- change feed#
The numbered list of every change the core made to the store, which your application reads from its cursor.
- change set#
What an adapter hands the core after asking the server what changed in one scope: the objects that changed or were removed, the sync token it was fetched from, and the token it leads to.
- checkpoint#
The sync token a truncated page ends at. The next request continues from it.
- claim#
To mark a pending edit in flight just before pushing it, in one step that fails if another process got there first.
- conflict#
An object where your pending edit and the server disagree: both sides changed it, one side deleted it while the other edited it, or the server refused your create because another object holds its UID. calendaring-sync reports it and leaves the decision to you.
- conflict record#
What the core stores for one conflict: the synced content, your edit, the server’s side, and the kind of conflict. It stays open until you resolve it or it resolves itself.
- container#
A calendar, or another grouping, that an object belongs to. One object can belong to more than one.
- content#
An object’s data, exactly as the server sent it or as you recorded it in an edit.
- core#
calendaring-sync itself: the part that keeps sync state and knows nothing about any server or protocol.
- cursor#
The number of the last change feed entry a part of your application has handled.
- drop#
- fingerprint#
A value computed from an object’s content, leaving out what a server rewrites on its own. Two copies with the same fingerprint differ at most in what a server rewrites.
- fingerprint scheme#
The name of the function that computed a scope’s fingerprints. Fingerprints from different schemes can’t be compared.
- full listing#
A change set that lists every object in a scope, not only the ones that changed.
- in flight#
The state of a push that was claimed, until the adapter reports how it ended or the next complete ingest settles it.
- incremental change set#
A change set that holds only what changed since the scope’s sync token.
- ingest#
To apply a change set to the store in one transaction. An ingest is complete when it applies a complete change set, or the last page of a truncated one.
- local key#
An identifier the core gives each record, which never changes.
- logical key#
An identifier taken from an object’s content, such as its UID. Unlike an object id, several objects can share one.
- object#
One item a scope holds, such as one event or one task.
- object id#
The identifier the server uses for an object, unique within its scope. It’s the object’s identity.
- pending edit#
- local edit#
- edit#
A change, delete or create you’ve recorded for an object that hasn’t reached the server yet. The next sync pushes it.
- purge#
To delete removed records from the store for good, up to a point your application chooses.
- push#
To send one pending edit to the server. Design describes how a push can end.
- record#
Everything the core stores about one object, including its current state.
- reset#
To forget a scope’s sync token, so that the next sync of that scope is a full listing.
- resolver#
A function you write and pass to
resolve_conflicts(). It receives each open conflict record and says how to resolve it.- scope#
The set of objects one sync token covers, such as one calendar.
- session#
One sync of one scope: it ingests every page first, then pushes your pending edits.
- store#
Where the core keeps each scope’s sync token, its records, your pending edits, open conflicts, and the change feed.
- sync token#
- token#
A marker the server gives out that stands for one point in a scope’s history. The adapter sends it back to ask what changed since then. The core only stores and compares it.
- synced content#
An object’s content as both sides last agreed on it, at the end of the last sync.
- truncated page#
- page#
One part of a change set that arrives in several parts. The last page completes the change set.
- UID#
The identifier an event or task carries inside its own data. Copies of it in other calendars carry the same UID.
- version#
A marker the server gives each object, which changes when the object does. The core only checks whether two versions are equal.