The sync log

The seam between virta and its backend is one small interface: pull events after a cursor, push new events. The log assigns seq; writers never do.

MemoryLog is the in-process implementation, used by tests, seeds, and live examples. IndexedDBLog persists in the browser. The service-compris adapter will implement the same interface against the remote endpoint — the client-side cache stays exactly as it is and doubles as the read-only degradation copy.

The guard that matters: the log is append-only and shaped as a log, never a document store with a tasks table the UI reads and writes directly. If it were, the board would be built against the wrong contract.