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.
Type Parameters
Section titled “Type Parameters”E
Properties
Section titled “Properties”currentVersion
Section titled “currentVersion”
readonlycurrentVersion:number
Defined in: src/persistence/migration/defaultsAdapter.ts:28
defaults
Section titled “defaults”
readonlydefaults:object
Defined in: src/persistence/migration/defaultsAdapter.ts:29
Index Signature
Section titled “Index Signature”[fromVersion: number]: Partial<E>
manifest
Section titled “manifest”
readonlymanifest:string
Defined in: src/persistence/migration/defaultsAdapter.ts:27
writeVersion?
Section titled “writeVersion?”
readonlyoptionalwriteVersion?:number
Defined in: src/persistence/migration/defaultsAdapter.ts:30