Skip to main content

Journal

@totemsdk/storage


@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>[]>