product-foundry / akka-persistence-couchbase

A replicated Akka Persistence journal backed by Couchbase

Version Matrix

Couchbase Plugins for Akka Persistence

Gitter License Build Status Codacy Badge Codacy Coverage Download

Replicated Akka Persistence journal and snapshot store backed by Couchbase.

Dependencies

Latest release

To include the latest release of the Couchbase plugins into your sbt project, add the following lines to your build.sbt file:

resolvers += "Product-Foundry at bintray" at "http://dl.bintray.com/productfoundry/maven"

libraryDependencies += "com.productfoundry" %% "akka-persistence-couchbase" % "0.6"

This version of akka-persistence-couchbase depends on Akka 2.5.3 and Scala 2.11.8.

It is tested on Travis using Couchbase 3.0.1

Journal plugin

Features

  • All operations required by the Akka Persistence journal plugin API are fully supported.
  • The plugin uses Couchbase in a pure log-oriented way i.e. data are only ever inserted but never updated (deletions are made using deletion markers, rather than performing physical deletion).
  • Batches are stored in a single Couchbase message to maintain atomicity.

Configuration

To activate the journal plugin, add the following line to your Akka application.conf:

akka.persistence.journal.plugin = "couchbase-journal"

This will run the journal with its default settings. The default settings can be changed with the configuration properties defined in reference.conf.

Caveats

  • Not yet tested under very high loads.

Snapshot store plugin

Features

Configuration

To activate the snapshot-store plugin, add the following line to your Akka application.conf:

akka.persistence.snapshot-store.plugin = "couchbase-snapshot-store"

This will run the snapshot store with its default settings. The default settings can be changed with the configuration properties defined in reference.conf.

Acknowledgements

Inspired by Cassandra Plugins for Akka Persistence.