CassandraRememberEntitiesStoreOptions
Defined in: src/cluster/sharding/CassandraRememberEntitiesStore.ts:38
Cassandra-backed RememberEntitiesStore for ClusterSharding (#84)
— the natural complement to the existing JournalRememberEntitiesStore
for deployments using Cassandra/Scylla as their event journal.
Schema design. State-based, not event-sourced. Each known
(type, shard, entity) triple lives as a single row with a
started_at timestamp; stopped events translate into a row
delete, started events into an upsert. This is materially
cheaper to reload than the journal-backed implementation (one
partition scan vs. replaying every lifecycle event ever recorded
for the type) at the cost of losing history — but the
coordinator only needs the current entity set.
Partition layout. Partition key is type_name; clustering
key is (shard_id, entity_id). Every entity for a given sharded
type lands in one partition. Acceptable for typical workloads
(thousands of entities per type, fits comfortably in a single
Cassandra partition); for very large entity sets, switch to the
journal-backed store or split the partition by shard_id (the
standard Cassandra “wide-row → composite-key” workaround).
clear semantics. Issues DELETE FROM tbl WHERE type_name = ?
— a whole-partition delete, atomic in Cassandra. Scoping resets to
one type at a time matches JournalRememberEntitiesStore.
Replay shape. load returns synthetic 'started' events for
every row currently in the partition. No 'stopped' events are
emitted because they were applied via DELETE at write time —
ShardCoordinator reapplies the result to its in-memory map and
arrives at the same entitiesPerShard view the event-replay
variant produces.
Extends
Section titled “Extends”Properties
Section titled “Properties”autoCreateKeyspace?
Section titled “autoCreateKeyspace?”
readonlyoptionalautoCreateKeyspace?:boolean
Defined in: src/persistence/journals/CassandraClient.ts:42
If true, create the keyspace on startup (simple strategy, rf=1). Dev-friendly default.
Inherited from
Section titled “Inherited from”CassandraConnection.autoCreateKeyspace
autoCreateTables?
Section titled “autoCreateTables?”
readonlyoptionalautoCreateTables?:boolean
Defined in: src/cluster/sharding/CassandraRememberEntitiesStore.ts:42
Auto-create the table on first use. Default: true.
client?
Section titled “client?”
readonlyoptionalclient?:CassandraClientLike
Defined in: src/cluster/sharding/CassandraRememberEntitiesStore.ts:50
Inject a pre-built CQL client. When omitted, the store
instantiates its own (via cassandra-driver) — but typical
deployments share one client across journal + snapshot store +
remember-entities, so passing the existing one in is the
recommended pattern.
consistency?
Section titled “consistency?”
readonlyoptionalconsistency?:number
Defined in: src/persistence/journals/CassandraClient.ts:55
CQL consistency level to use for all reads and writes. Default:
LOCAL_QUORUM (value 6 in the driver). Pass the numeric value from
cassandra-driver’s types.consistencies.
Inherited from
Section titled “Inherited from”CassandraConnection.consistency
contactPoints
Section titled “contactPoints”
readonlycontactPoints: readonlystring[]
Defined in: src/persistence/journals/CassandraClient.ts:32
Node(s) to seed the cluster topology from.
Inherited from
Section titled “Inherited from”CassandraConnection.contactPoints
credentials?
Section titled “credentials?”
readonlyoptionalcredentials?:object
Defined in: src/persistence/journals/CassandraClient.ts:38
Optional username/password for PLAIN auth.
password
Section titled “password”password:
string
username
Section titled “username”username:
string
Inherited from
Section titled “Inherited from”CassandraConnection.credentials
keyspace
Section titled “keyspace”
readonlykeyspace:string
Defined in: src/persistence/journals/CassandraClient.ts:36
Keyspace to USE after connect. Must already exist, or pass autoCreateKeyspace: true.
Inherited from
Section titled “Inherited from”localDataCenter?
Section titled “localDataCenter?”
readonlyoptionallocalDataCenter?:string
Defined in: src/persistence/journals/CassandraClient.ts:34
Local DC — required for DCAwareRoundRobinPolicy. Defaults to datacenter1.
Inherited from
Section titled “Inherited from”CassandraConnection.localDataCenter
readonlyoptionalport?:number
Defined in: src/persistence/journals/CassandraClient.ts:40
Port — defaults to 9042.
Inherited from
Section titled “Inherited from”replication?
Section titled “replication?”
readonlyoptionalreplication?:object
Defined in: src/persistence/journals/CassandraClient.ts:44
Replication settings used by autoCreateKeyspace. Ignored otherwise.
class?
Section titled “class?”
readonlyoptionalclass?:"SimpleStrategy"|"NetworkTopologyStrategy"
dataCenters?
Section titled “dataCenters?”
readonlyoptionaldataCenters?:Readonly<Record<string,number>>
For NetworkTopologyStrategy, map of DC → replication factor.
replicationFactor?
Section titled “replicationFactor?”
readonlyoptionalreplicationFactor?:number
Inherited from
Section titled “Inherited from”CassandraConnection.replication
table?
Section titled “table?”
readonlyoptionaltable?:string
Defined in: src/cluster/sharding/CassandraRememberEntitiesStore.ts:40
Table for the remember-entities state. Default: remember_entities.