Skip to content
D
Documentation

SyncAdapter

reference
1 min readUpdated

Import it from @grafloria/engine.

Binds one Replica to one SyncTransport.

The replica must be constructed with onLocalOp pointing at adapter.publish — use {@link createSyncSession}, which does that wiring for you and cannot get it backwards.

ts
class SyncAdapter

Properties

NameTypeDefaultDescription
awarenessAwareness
statsSyncStats

Methods

  • constructor( readonly replica: Replica, private readonly transport: SyncTransport, private readonly options: SyncAdapterOptions = {} )
  • get actor(): ActorId
  • get diagram(): DiagramModel
  • get pendingOps(): Op[] — Ops still waiting on an add that has not arrived. Should return to 0.
  • frontier(): VersionVectorJSON — What we tell peers we have.
  • join(): void — Announce ourselves and ask for what we are missing.
  • leave(): void — Say goodbye and stop. Best-effort — the peers' TTL is what actually guarantees it.
  • sync(): void — An anti-entropy round: "here is my frontier; send me what I lack, and tell me yours."
  • flush(): void — Push any queued local ops onto the wire now.
  • publish(op: Op): void — Our own edits. Wired to Replica.onLocalOp — see {@link createSyncSession}.
  • sharedHistory(): Op[] — THE LOG AS THE NETWORK SEES IT — our history, minus everything coalescing withheld.
  • setAwareness(patch: Partial<AwarenessState>): void — Publish our cursor / selection / name.
  • dispose(): void — Stop for good: leave (which DISCONNECTS the transport), drop every timer and unsubscribe from the transport.

Was this page helpful?