Sync / Replicated state

Choose the owner first

Replication is not for every value that crosses the network. Ask who owns the fact and how it recovers:

StateAuthorityRecoveryUse
A route, a selection, a transient errorthe local Modelnothing to recoverplain Foldkit
Data the server owns and the client may refetchthe serverrefetchfoldkit-remote
Edits the user authored that must survive offline and convergethe durable logreplay and reconciliationfoldkit-sync + foldkit-durable
Edits to server-owned rows too many to replicate, offline and convergingthe durable log, with the table its read modelreplay; a reread of the rowsEditing server data through a journal
A filter in the URL, a draft on this devicethe local Modelrestorefoldkit-mirror

The Remote and Sync line is the one to memorize: a Remote cache is disposable and refetch is recovery; a Sync outbox is user data and losing it loses edits.

One server decides the order of a document. Peers that must each accept writes and merge without a server are a different design (a CRDT), and Sync is not one.