Decision guide

Full Sync vs Delta Sync vs CRDTs

How should a mobile or offline-first app synchronize data with the server?

Side by side

CriterionFull snapshot syncDelta sync (change tokens)CRDT-based sync
Bytes per syncEverythingOnly changesOnly operations
Offline writesSeparate outbox neededOutbox + server conflict rulesNative (merge on reconnect)
Conflict handlingServer overwritesLWW / field merge / version checksAutomatic convergence
DeletesImplicitTombstonesTombstones inside CRDT
Server complexityLowMedium (change log, retention, resync)High (persist/relay ops, compaction)
Enforcing business invariantsEasyEasy (server validates)Hard (merges happen anywhere)
ExamplesConfig, catalogsCKSyncEngine, custom sync APIs, Realm/PowerSync-style enginesAutomerge, Yjs

When to choose each

Full snapshot sync

Download the whole dataset (or a screen's data) every time.

Choose when

  • Small datasets
  • Rarely changing reference data
  • First launch / recovery after resync

Avoid when

  • Large datasets on metered networks
  • Frequent background refresh

Delta sync (change tokens)

Server returns changes since an opaque token: upserts and tombstones.

Choose when

  • Most offline-capable apps
  • Large datasets with small daily changes
  • Server-authoritative business data

Avoid when

  • Rich concurrent editing of the same document

CRDT-based sync

Replicas exchange operations on conflict-free data types that merge automatically.

Choose when

  • Collaborative documents, whiteboards, shared lists
  • Peer-to-peer or long offline periods with concurrent edits

Avoid when

  • Data with server-enforced invariants (payments, inventory)
  • Teams without capacity for new data models

Verdict

Use full snapshots for small reference data and as the recovery path, delta sync with change tokens as the default for business data, and CRDTs only for genuinely collaborative content where users edit the same objects concurrently. Many apps combine them: delta sync for records, CRDT for a rich-text field.

Learn more

Sources