Skip to content

DefaultsAdapterSpec

Defined in: src/persistence/migration/defaultsAdapter.ts:26

Spec for defaultsAdapter / defaultsSnapshotAdapter.

manifest — stable type identity, e.g. ‘BankAccount.Deposited’ currentVersion — version emitted by this code revision defaults[fromV] — fields to merge in when reading a payload at version fromV that is then carried forward to version fromV+1 by simple object spread writeVersion — version to emit on toJournal (#7). Defaults to currentVersion. When set lower than current, fields added at versions in [writeVersion+1, currentVersion] are stripped on write — the mechanical inverse of the additive defaults merge. Used during rolling deploys: v2 nodes keep emitting v1 events while v1 readers still exist; flip writeVersion to v2 once every reader has been upgraded.

The merge is { ...defaults[fromV], ...payload } — the stored payload always wins, so existing fields are never overwritten by defaults. Run repeatedly for every step on the path stored→currentVersion.

E

readonly currentVersion: number

Defined in: src/persistence/migration/defaultsAdapter.ts:28


readonly defaults: object

Defined in: src/persistence/migration/defaultsAdapter.ts:29

[fromVersion: number]: Partial<E>


readonly manifest: string

Defined in: src/persistence/migration/defaultsAdapter.ts:27


readonly optional writeVersion?: number

Defined in: src/persistence/migration/defaultsAdapter.ts:30