Sync / Editing server data
What each call does, and does not
ProductEdits.editedand.Editare schemas: the Message's fields and a cell's stored edit. They describe; they hold nothing.mergeis pure: the edits with the changes laid over them, each cell's latest kept. It does no I/O and sends nothing;Sync.factinupdateis what makes the Message durable and sends it.- The stamp runs on the server at commit, inside the journal. A client
never sends
atorby; the journal'svalidaterefuses one that does, since its sender would show the edit as committed when it was not. RemoteEdits.reconcileis pure: it brings Remote's overlays in line with the slice and returns the Model; Remote's reads, the grid's and any other view's, then draw each edit over its row. It sends nothing. It runs inafterUpdate, not inupdate: a durable Message is replayed throughupdateon the server and in the replica, where it may change the slice alone.settleis I/O: it runsapplyfor each committed change as a recovery intent. The effect ledger and the table are separate databases, so an intent may run twice after a crash;applynever moving a row back is what makes that harmless.applyEdits(binding)is thatapply: oneupdatesetting the member's column (the binding's, never a name from the change) and the revision to the sequence, where the row's revision is at or below it.- None of this is a Remote mutation. Remote only reads the table.