Overview

The Pekko Persistence Cassandra plugin allows for using Apache Cassandra as a backend for Pekko Persistence and Pekko Persistence Query. It uses Pekko Connectors Cassandra for Cassandra access which is based on the Datastax Java Driver.

Project Info

Project Info: Apache Pekko Persistence Cassandra
Artifact
org.apache.pekko
pekko-persistence-cassandra
1.0.0
JDK versions
OpenJDK 8
OpenJDK 11
OpenJDK 17
Scala versions2.12.19, 2.13.13, 3.3.3
JPMS module namepekko.persistence.cassandra
License
Home pagehttps://pekko.apache.org/
API documentation
Forums
Release notesGitHub releases
IssuesGitHub issues
Sourceshttps://github.com/apache/pekko-persistence-cassandra

Dependencies

This plugin requires Pekko 1.0.2 or later. See Pekko’s Binary Compatibility Rules for details.

sbt
val PekkoVersion = "1.0.2"
libraryDependencies ++= Seq(
  "org.apache.pekko" %% "pekko-persistence-cassandra" % "1.0.0",
  "org.apache.pekko" %% "pekko-persistence" % PekkoVersion,
  "org.apache.pekko" %% "pekko-persistence-query" % PekkoVersion,
  "org.apache.pekko" %% "pekko-cluster-tools" % PekkoVersion
)
Maven
<properties>
  <pekko.version>1.0.2</pekko.version>
  <scala.binary.version>2.13</scala.binary.version>
</properties>
<dependencies>
  <dependency>
    <groupId>org.apache.pekko</groupId>
    <artifactId>pekko-persistence-cassandra_${scala.binary.version}</artifactId>
    <version>1.0.0</version>
  </dependency>
  <dependency>
    <groupId>org.apache.pekko</groupId>
    <artifactId>pekko-persistence_${scala.binary.version}</artifactId>
    <version>${pekko.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.pekko</groupId>
    <artifactId>pekko-persistence-query_${scala.binary.version}</artifactId>
    <version>${pekko.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.pekko</groupId>
    <artifactId>pekko-cluster-tools_${scala.binary.version}</artifactId>
    <version>${pekko.version}</version>
  </dependency>
</dependencies>
Gradle
def versions = [
  PekkoVersion: "1.0.2",
  ScalaBinary: "2.13"
]
dependencies {
  implementation "org.apache.pekko:pekko-persistence-cassandra_${versions.ScalaBinary}:1.0.0"
  implementation "org.apache.pekko:pekko-persistence_${versions.ScalaBinary}:${versions.PekkoVersion}"
  implementation "org.apache.pekko:pekko-persistence-query_${versions.ScalaBinary}:${versions.PekkoVersion}"
  implementation "org.apache.pekko:pekko-cluster-tools_${versions.ScalaBinary}:${versions.PekkoVersion}"
}

Note that it is important that all pekko-* dependencies are in the same version, so it is recommended to depend on them explicitly to avoid problems with transient dependencies causing an unlucky mix of versions.

The table below shows Pekko Persistence Cassandra’s direct dependencies and the second tab shows all libraries it depends on transitively.

Snapshots

Snapshots are published to a snapshot repository in Sonatype after every successful build on main branch. Add the following to your project build definition to resolve snapshots:

sbt
resolvers += "Apache Snapshots" at "https://repository.apache.org/content/groups/snapshots"
Maven
<project>
...
  <repositories>
    <repository>
      <id>apache-snapshots</id>
      <name>Apache Snapshots</name>
      <url>https://repository.apache.org/content/groups/snapshots</url>
    </repository>
  </repositories>
...
</project>
Gradle
repositories {
  maven {
    url  "https://repository.apache.org/content/groups/snapshots"
  }
}

Snapshot builds are available at https://repository.apache.org/content/groups/snapshots/org/apache/pekko/. All Pekko modules that belong to the same build have the same version.

The snapshot documentation is updated with every snapshot build.

History

This Apache Cassandra plugin to Pekko Persistence was initiated originally by Martin Krasser, @krasserm in 2014.

It moved to the Akka organisation in 2016 and the first release after that move was 0.7 in January 2016.

Apache Pekko forked the plugin after Akka changed its licensing.

Contributing

Please feel free to contribute to Pekko and Pekko Persistence Cassandra by reporting issues you identify, or by suggesting changes to the code. Please refer to our contributing instructions to learn how it can be done.

We want Pekko to strive in a welcoming and open atmosphere and expect all contributors to respect our code of conduct.