Journal
@totemsdk/storage / Journal
Interface: Journal<T>
Type Parameters
T
T
Methods
append()
append(
record):Promise<JournalEntry<T>>
Append one record; returns the immutable entry.
Parameters
record
T
Returns
Promise<JournalEntry<T>>
appendBatch()
appendBatch(
records):Promise<JournalEntry<T>[]>
Append records in order. Not atomic across adapters (append-only records
are immutable, so a failure partway is an unrecorded tail, repaired by
recover()); entries are appendable one-at-a-time.
Parameters
records
readonly T[]
Returns
Promise<JournalEntry<T>[]>
count()
count():
Promise<number>
Number of durably-recorded entries (contiguous from 1).
Returns
Promise<number>
getHead()
getHead():
Promise<number>
Highest contiguous durably-recorded sequence (0 when empty).
Returns
Promise<number>
hasState()
hasState():
Promise<boolean>
True when the journal holds any state (head or entries).
Returns
Promise<boolean>
read()
read(
fromSeq?,toSeq?):Promise<JournalEntry<T>[]>
Replay records in ascending sequence, fromSeq..toSeq (default: all records so far).
Parameters
fromSeq?
number
toSeq?
number
Returns
Promise<JournalEntry<T>[]>
readSince()
readSince(
seq):Promise<JournalEntry<T>[]>
Replay records after seq (checkpoint resume), ascending.
Parameters
seq
number
Returns
Promise<JournalEntry<T>[]>
recover()
recover():
Promise<JournalRecoveryReport>
Repair a possibly torn head: roll back an unrecorded tail left by a crash
between CAS head bump and entry write; surface any gap below the
contiguous tail as corrupt.
Returns
Promise<JournalRecoveryReport>
tail()
tail(
count):Promise<JournalEntry<T>[]>
Last count records, ascending (clamped).
Parameters
count
number
Returns
Promise<JournalEntry<T>[]>