An Akka extension for using Apache Cassandra as event log storage backend.
The extension connects to the configured Cassandra cluster and creates the configured keyspace if it doesn't
exist yet. Keyspace auto-creation can be turned off by setting
eventuate.log.cassandra.keyspace-autocreate = false
The name of the keyspace defaults to eventuate and can be configured with
eventuate.log.cassandra.keyspace = "eventuate"
The Cassandra cluster contact points can be configured with
eventuate.log.cassandra.contact-points = [host1[:port1], host2[:port2], ...]
Ports are optional and default to 9042 according to
eventuate.log.cassandra.default-port = 9042
This extension also creates two index tables for storing replication progress data and event log indexing
progress data. The names of these tables have a prefix defined by
eventuate.log.cassandra.table-prefix = "log"
Assuming a log prefix
If two instances of this extensions are created concurrently by two different actor systems, index table
creation can fail (see CASSANDRA-8387). It is
therefore recommended to initialize a clean Cassandra cluster with a separate administrative application
that only creates an instance of this Akka extension before creating CassandraEventLog actors. This
must be done only once. Alternatively, different actor systems can be configured with different
eventuate.log.cassandra.keyspace names. In this case they won't share a keyspace and index tables and
concurrent initialization is not an issue.
Cassandra cluster reference.
Cassandra session used by this extension.