6.8.2.4 SyncDigest
6.8.2.4.1 Purpose¶
A monthly fingerprint, per feed, of what the farm's sync client believes it has sent. If it does not match what we hold, that month is synchronised again in full.
6.8.2.4.2 Questions it answers¶
- Does the client's cache agree with our data for a month?
- Which months need to be synchronised again?
6.8.2.4.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
source_feed |
SourceFeed | 1..1 |
|
month |
string |
1..1 |
e.g. 2026-10, in the farm timezone. |
record_count |
integer |
1..1 |
|
keys_hash |
string |
1..1 |
Hash of the sorted (source_record_key, content_hash) pairs of the month. |
reported_at |
datetime |
1..1 |
|
matches |
boolean |
1..1 |
|
created_at |
datetime |
1..1 |
6.8.2.4.4 Relationships¶
References
SyncDigest.source_feed→ SourceFeed (1..1)
6.8.2.4.5 Rules & constraints¶
- Safety check of the client's local cache: a fingerprint of what the client believes it has sent, per feed and month.
- If it differs from what we hold, that month is synchronised again (SyncRun
full_snapshot, triggerdigest_mismatch). - Sent daily for the recent months. At setup the client downloads the keys and hashes we already hold, so a reinstalled client does not resend everything as new.