# 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`](/indexeddb-log/) 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.
