CassandraJournal
Defined in: src/persistence/journals/CassandraJournal.ts:85
Journal backed by Apache Cassandra or ScyllaDB — same CQL protocol, one plug-in serves both. Schema:
- composite partition key
(persistence_id, partition_nr)— keeps individual partitions bounded even for long-lived event streams; - clustering column
sequence_nrfor in-stream ordering; - a small metadata row per persistence_id tracking
max_sequence_nr.
The journal relies on a single writer per persistence id — the
standard PersistentActor contract, one instance per id at a time.
Under that assumption the “read max-seq → append → write max-seq”
sequence is safe without server-side LWT. If you need multi-writer
safety, wrap the metadata update in an LWT (IF max_sequence_nr = ?).
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new CassandraJournal(
options):CassandraJournal
Defined in: src/persistence/journals/CassandraJournal.ts:95
Parameters
Section titled “Parameters”options
Section titled “options”Returns
Section titled “Returns”CassandraJournal
Accessors
Section titled “Accessors”tagIndexTable
Section titled “tagIndexTable”Get Signature
Section titled “Get Signature”get tagIndexTable():
string
Defined in: src/persistence/journals/CassandraJournal.ts:293
Side-table name used when useTagIndex is set — visible so
CassandraQuery can target it directly.
Returns
Section titled “Returns”string
useTagIndex
Section titled “useTagIndex”Get Signature
Section titled “Get Signature”get useTagIndex():
boolean
Defined in: src/persistence/journals/CassandraJournal.ts:295
Whether dual-writes to the tag-index side table are enabled.
Returns
Section titled “Returns”boolean
Methods
Section titled “Methods”append()
Section titled “append()”append<
E>(pid,events,expectedSeq,tags?):Promise<PersistentEvent<E>[]>
Defined in: src/persistence/journals/CassandraJournal.ts:117
Append events to the stream of pid, enforcing optimistic concurrency:
the current highest sequence number MUST equal expectedSeq or the
call throws JournalConcurrencyError. Returns the written events
with their assigned sequence numbers.
Type Parameters
Section titled “Type Parameters”E
Parameters
Section titled “Parameters”string
events
Section titled “events”readonly E[]
expectedSeq
Section titled “expectedSeq”number
readonly string[]
Returns
Section titled “Returns”Promise<PersistentEvent<E>[]>
Implementation of
Section titled “Implementation of”close()
Section titled “close()”close():
Promise<void>
Defined in: src/persistence/journals/CassandraJournal.ts:278
Best-effort teardown; idempotent.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”delete()
Section titled “delete()”delete(
pid,toSeq):Promise<void>
Defined in: src/persistence/journals/CassandraJournal.ts:251
Delete events up to and including toSeq — used when compacting past a snapshot.
Parameters
Section titled “Parameters”string
number
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”highestSeq()
Section titled “highestSeq()”highestSeq(
pid):Promise<number>
Defined in: src/persistence/journals/CassandraJournal.ts:246
Current highest sequence number for pid — 0 if no events exist.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<number>
Implementation of
Section titled “Implementation of”persistenceIds()
Section titled “persistenceIds()”persistenceIds():
Promise<string[]>
Defined in: src/persistence/journals/CassandraJournal.ts:268
Persistence IDs currently known to the journal (useful for projections).
Returns
Section titled “Returns”Promise<string[]>
Implementation of
Section titled “Implementation of”read()
Section titled “read()”read<
E>(pid,fromSeq,toSeq?):Promise<PersistentEvent<E>[]>
Defined in: src/persistence/journals/CassandraJournal.ts:214
Return events in (fromSeq, …, toSeq] order. toSeq defaults to
the current highest sequence number. Inclusive bounds — fromSeq
is the first event returned, not the “after” cursor.
Type Parameters
Section titled “Type Parameters”E
Parameters
Section titled “Parameters”string
fromSeq
Section titled “fromSeq”number
toSeq?
Section titled “toSeq?”number
Returns
Section titled “Returns”Promise<PersistentEvent<E>[]>
Implementation of
Section titled “Implementation of”start()
Section titled “start()”start():
Promise<void>
Defined in: src/persistence/journals/CassandraJournal.ts:102
Explicitly connect + ensure schema. Called lazily on first use.
Returns
Section titled “Returns”Promise<void>