A plugin for Akka Persistence, which provides a journal and a snapshot store backed by Hazelcast. Please, consider to read the documentation for the plugin and the Hazelcast itself.
The plugin is tested against:
- Scala 2.11/2.12
- Java 8
- Hazelcast 3.6.x-3.8.x
- Akka 2.4.x-2.5.x
The plugin works with Scala 2.11/2.12, Hazelcast 3.6.x/3.7.x/3.8.x and Akka 2.4.x/2.5.x, but does not define them as compile time dependencies. Therefore, please, make sure that you have included all the relevant dependencies in your project.
All of the examples below are for Scala 2.12. You can easily change 2.12
to 2.11
in order to get the right artifacts.
dependencies {
compile "com.github.sorokinigor:akka-persistence-hazelcast_2.12:1.1.0"
compile "org.scala-lang:scala-library:2.12.1"
compile "com.typesafe.akka:akka-persistence_2.12:2.5.3"
compile "com.hazelcast:hazelcast:3.8.3"
}
repositories {
mavenCentral()
}
libraryDependencies += "com.github.sorokinigor" % "akka-persistence-hazelcast_2.12" % "1.1.0"
libraryDependencies += "org.scala-lang" % "scala-library" % "2.12.1"
libraryDependencies += "com.typesafe.akka" % "akka-persistence_2.12" % "2.5.3"
libraryDependencies += "com.hazelcast" % "hazelcast" % "3.8.3"
<dependency>
<groupId>com.github.sorokinigor</groupId>
<artifactId>akka-persistence-hazelcast_2.12</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-persistence_2.12</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>3.8.3</version>
</dependency>
Put this in a application.conf:
akka.persistence {
journal.plugin = "hazelcast.journal"
snapshot-store.plugin = "hazelcast.snapshot-store"
}
See more about the configuration in the reference.conf, documentation and unit tests.