Zum Inhalt springen
NavTrax Expeditions-Betriebssystem

Platform · Synchronization

Consistency without a connection.

Four transports, one durable operation log, and a merge that resolves at the granularity of a field rather than a record. This page is the summary; the full mechanism, including the failure model we designed against, is written up in the technology section.

4TransportsCellular, mesh, LoRa relay, satellite
0Writes lost to a process killThe queue is on disk before the UI acknowledges
1Idempotency keyDevice and sequence — a retry is never a duplicate
5Merge rulesIn a defined order, identical on every device

The mechanism, not the promise.

Operations, not state
The queue holds the operation that produced a change, with an explicit causal parent, so a deletion can never arrive before the creation it refers to.
Durability
Written to SQLite on mobile and IndexedDB on web before acknowledgment. Queue depth is shown, so nine unsynced days is a number rather than a silent condition.
Channel selection
Per attempt, not per session. The cheapest channel that is actually up, with satellite deliberately last and restricted to a digest.
Field-level merge
Disjoint fields merge with no conflict. Same-field conflicts resolve by Lamport pair, deterministically. Safety-critical fields never auto-resolve.
Tombstones
A delete concurrent with an edit keeps the record, marks it deleted and surfaces it for review. Nothing is destroyed by a race.

What you actually get.

01

Group relay

One member with a signal synchronizes the party.

02

Air-gapped bundles

The same queue exports to removable media and imports through the identical ingest and resolver path.

03

Visible queue

Depth, age and per-item state. Not a spinner.

04

Causal replay

Operations apply in dependency order, held until their parent lands.

05

Safety-critical review

Check-in schedules, emergency contacts and medical notes raise an explicit review rather than merging silently.

06

One code path

Cellular, mesh, satellite and sneaker-net all converge on the same resolver, so the guarantees do not vary by channel.

Traced, node by node.

Every node in this graph names the file it came from, so the diagram can be audited against the codebase rather than taken on trust.

Sync fabric — process graph Ziehen zum Schwenken · ⌘/Ctrl + Scroll zum Zoomen · Knoten ziehen zum Verschieben

Read the whole mechanism.

The full write-up, including the four failure modes this design exists to prevent, is in the technology section.