Akka Persistence Hazelcast
Introduction
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.
Prerequisites
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
Installation
Dependencies
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.
Gradle
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()
}
Sbt
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"
Maven
<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>
Activate plugin
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.