Skip to content

UpdateCoordinator

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:46

Coordinates update batching, coalescing, and flush scheduling.

Updates are queued and debounced for efficiency. Before flushing, updates are coalesced:

  • Only the latest chart_resize is kept
  • vessel_mutation updates for the same instance are combined

User intents bypass the coordinator entirely and are handled directly by the Orchestrator via processIntent.

const coordinator = new UpdateCoordinator({ debounceDelayMs: 300 });
coordinator.events.on('updates_flushed', (event) => {
buildAndSendRequest(event.updates);
});
coordinator.schedule({ type: 'chart_resize', width: 800, height: 600 });

new UpdateCoordinator(options?): UpdateCoordinator

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:56

UpdateCoordinatorOptions = {}

UpdateCoordinator

readonly events: EventSubscriber<UpdateCoordinatorEvents>

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:48

get pendingCount(): number

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:155

number

clear(): void

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:159

void


dispose(): void

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:168

void


flush(): UpdateReason[]

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:98

Synchronously flushes all pending updates.

Coalesces updates, clears the queue, emits updates_flushed, and returns the coalesced updates.

UpdateReason[]


getPending(): UpdateReason[]

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:147

UpdateReason[]


hasPending(): boolean

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:151

boolean


schedule(reason): void

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:66

Queues an update reason for the next debounced flush.

No-op after disposal.

UpdateReason

void


takeCoalesced(): UpdateReason[]

Defined in: packages/client/src/lib/update-coordination/update-coordinator.ts:129

Takes all pending updates (coalesced) without emitting events.

Useful for the processIntent path where the orchestrator handles request assembly directly.

UpdateReason[]