OffsetStore
Defined in: src/persistence/projection/OffsetStore.ts:19
Per-projection persistent cursor. The ProjectionActor
loads the offset on preStart and writes it back after every
successfully-handled event. The pair of (load → handle event →
save) gives at-least-once delivery: the same event can be re-handled
if the projection crashes between handle and save, which is exactly
why projection handlers must be idempotent.
Two flavours of cursor are stored: a simple integer
(sequence-based, used by eventsByPersistenceId) and the composite
Offset (timestamp-based, used by eventsByTag). The store
persists both as plain JSON so the underlying backend doesn’t need
to know about the difference.
Methods
Section titled “Methods”clear()
Section titled “clear()”clear(
projectionName):Promise<void>
Defined in: src/persistence/projection/OffsetStore.ts:27
Forget every cursor for projectionName. Used by tests + reset tooling.
Parameters
Section titled “Parameters”projectionName
Section titled “projectionName”string
Returns
Section titled “Returns”Promise<void>
loadOffset()
Section titled “loadOffset()”loadOffset(
projectionName,tag):Promise<Offset>
Defined in: src/persistence/projection/OffsetStore.ts:23
Parameters
Section titled “Parameters”projectionName
Section titled “projectionName”string
string
Returns
Section titled “Returns”Promise<Offset>
loadSequence()
Section titled “loadSequence()”loadSequence(
projectionName,persistenceId):Promise<number>
Defined in: src/persistence/projection/OffsetStore.ts:20
Parameters
Section titled “Parameters”projectionName
Section titled “projectionName”string
persistenceId
Section titled “persistenceId”string
Returns
Section titled “Returns”Promise<number>
saveOffset()
Section titled “saveOffset()”saveOffset(
projectionName,tag,offset):Promise<void>
Defined in: src/persistence/projection/OffsetStore.ts:24
Parameters
Section titled “Parameters”projectionName
Section titled “projectionName”string
string
offset
Section titled “offset”Returns
Section titled “Returns”Promise<void>
saveSequence()
Section titled “saveSequence()”saveSequence(
projectionName,persistenceId,seqNr):Promise<void>
Defined in: src/persistence/projection/OffsetStore.ts:21
Parameters
Section titled “Parameters”projectionName
Section titled “projectionName”string
persistenceId
Section titled “persistenceId”string
number
Returns
Section titled “Returns”Promise<void>