type Journal<
Operation,
Snapshot,
Principal,
OperationEncoded = unknown,
> = JournalShape<Operation, Snapshot, Principal, OperationEncoded>
Journal.make#
const · packages/durable/src/node.ts:48
make: <
Operation,
Snapshot,
Principal,
OperationEncoded = unknown,
SnapshotEncoded = unknown,
>(
options: JournalOptions<
Operation,
Snapshot,
Principal,
OperationEncoded,
SnapshotEncoded
>,
) =>
Effect.Effect<
JournalShape<Operation, Snapshot, Principal, OperationEncoded>,
JournalError | UnsupportedJournalVersionError,
Scope
>
Opens a journal in the current scope.
Journal.layer#
function · packages/durable/src/node.ts:75
layer<
Operation,
Snapshot,
Principal,
OperationEncoded = unknown,
SnapshotEncoded = unknown,
>(
options: JournalOptions<
Operation,
Snapshot,
Principal,
OperationEncoded,
SnapshotEncoded
>,
key?: string,
): Layer.Layer<
JournalShape<Operation, Snapshot, Principal, OperationEncoded>,
JournalError | UnsupportedJournalVersionError
>
Provides a journal as a scoped layer under the default service key.
Journal.metrics#
const · packages/durable/src/journal.ts:49
metrics: {
appends: Metric.Counter<number>
compactions: Metric.Counter<number>
effectRuns: Metric.Counter<number>
effectRunsCoalesced: Metric.Counter<number>
}
Counters an application can scrape.
Journal.define#
function · packages/durable/src/node.ts:109
define<Operation, Snapshot, Principal, OperationEncoded = unknown>(
key: string,
): JournalDefinition<Operation, Snapshot, Principal, OperationEncoded>
Declares a journal's service key and its type parameters once, and returns
the tag and the layer constructor that agree on them.
ts
const TodoJournal = Journal.define<Operation, Snapshot, Principal>('app/TodoJournal')
const layer = TodoJournal.layer(options)
const journal = yield* TodoJournal.tag