How sync works when the server can’t read anything
Syncing encrypted data across devices is harder than it looks. A look under the hood at conflict resolution, oplogs and why your phone stays fast.
How sync works when the server can’t read anything
Syncing encrypted data across devices is harder than it looks. A look under the hood at conflict resolution, oplogs and why your phone stays fast.
Sync is the part nobody notices until it breaks. Doing it over encrypted data, where the server cannot peek to resolve conflicts, takes some care.
The oplog
Every change is an append-only, encrypted operation. Devices catch up by asking for everything since their last known id.
device A: ops 1..40
device B: ops 1..38 -> fetch 39, 40
Why it stays fast
- We sync operations, not whole records
- Each device decrypts locally, in the background
- Conflicts resolve by deterministic ordering, not by the server reading content
The result: changes land in a second or two, and the server still sees only ciphertext.