All Projects → safety-data → akka-persistence-redis

safety-data / akka-persistence-redis

Licence: Apache-2.0 license
Akka persistence plugin for Redis

Programming Languages

scala
5932 projects
HTML
75241 projects

Projects that are alternatives of or similar to akka-persistence-redis

akka-persistance-ignite
Akka persistance plugin implementation with Apache Ignite
Stars: ✭ 20 (-25.93%)
Mutual labels:  journal, akka-persistence
akka-persistence-dynamodb
DynamoDBJournal for Akka Persistence
Stars: ✭ 85 (+214.81%)
Mutual labels:  journal, akka-persistence
ebs-snapshot-lambda
AWS lambda function to snapshot EBS volumes and purge old snapshots.
Stars: ✭ 37 (+37.04%)
Mutual labels:  snapshot
FireSnapshot
A useful Firebase-Cloud-Firestore Wrapper with Codable.
Stars: ✭ 56 (+107.41%)
Mutual labels:  snapshot
akka-persistence-gcp-datastore
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
Stars: ✭ 18 (-33.33%)
Mutual labels:  akka-persistence
btrfs-backup
A simple, flexible script for versioned backups using btrfs and rsync
Stars: ✭ 59 (+118.52%)
Mutual labels:  snapshot
markdown.today
Store your journal as an encrypted markdown file on Dropbox and edit/view it from any browser
Stars: ✭ 61 (+125.93%)
Mutual labels:  journal
Swiftmazing
A iOS application with layout based on App Store that can check the most starred and last updated Swift repository
Stars: ✭ 73 (+170.37%)
Mutual labels:  snapshot
snap-shot-core
Save / load named snapshots, useful for tests
Stars: ✭ 14 (-48.15%)
Mutual labels:  snapshot
terraform-aws-efs-backup
Terraform module designed to easily backup EFS filesystems to S3 using DataPipeline
Stars: ✭ 40 (+48.15%)
Mutual labels:  snapshot
knut
knut is an efficient plain text accounting tool with support for multiple currencies and valuation.
Stars: ✭ 40 (+48.15%)
Mutual labels:  journal
jest-serializer-html-string
A better Jest snapshot serializer for plain html strings
Stars: ✭ 17 (-37.04%)
Mutual labels:  snapshot
pdiary
A simple terminal diary journal application written in Python with encryption support.
Stars: ✭ 24 (-11.11%)
Mutual labels:  journal
reactivejournal
ReactiveJournal a journalling facility for Reactive Streams. Intended for testing, remote connections and effective handling of back pressure
Stars: ✭ 27 (+0%)
Mutual labels:  journal
lunatask
All-in-one encrypted to-do list, notebook, habit and mood tracker, pomodoro timer, and journaling app
Stars: ✭ 35 (+29.63%)
Mutual labels:  journal
logback-journal
systemd journal appender for Logback
Stars: ✭ 25 (-7.41%)
Mutual labels:  journal
BaNG
Backup Next Generation for Linux & Mac using rsync (support hardlinks and btrfs snapshots), Web-Frontend, Statistics, History-Merger)
Stars: ✭ 28 (+3.7%)
Mutual labels:  snapshot
cpu-memory-monitor
CPU & Memory Monitor, auto dump.
Stars: ✭ 26 (-3.7%)
Mutual labels:  snapshot
aws-backup-lambda
A utility AWS lambda function to manage EBS and RDS snapshot backups.
Stars: ✭ 60 (+122.22%)
Mutual labels:  snapshot
quitsies
A persisted drop-in replacement for Memcached, respecting the rules of quitsies.
Stars: ✭ 16 (-40.74%)
Mutual labels:  snapshot

Akka Persistence Redis Plugin

Build Status

Note: Safety Data is no longer using Redis in our currently developed projects, and has stopped maintaining this repository. Feel free to fork!

What is it?

Akka Persistence Redis Plugin is a plugin for Akka persistence that provides several components:

  • a journal store ;
  • a snapshot store ;
  • a journal query interface implementation.

This plugin stores data in a redis database.

Installation

The plugin is compiled with Scala 2.13, 2.12 and 2.11 and deployed on the maven sonatype repositories. To use the plugin add this to your sbt build file :

libraryDependencies += "com.safety-data" %% "akka-persistence-redis" % "0.4.2"

Note: for snapshot versions you will need to add the sonatype snapshot resolver.

(De)Serialization

The journal and snapshot components save serialized values into the database. They rely on the Akka serialization extension. Custom serialization can be added to handle you data model elements as you wish.

Using the Journal Component

To use the journal component, you need to enable it in your configuration. To use the default settings, simply add this line:

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

Tags

The journal component has support for tagged events. All events wrapped inside an instance of class akka.persistence.journal.Tagged are associated to the provided tags in the data store.

Using the Snapshot Component

To use the snapshot component, you need to enable it in your configuration. To use the default settings, simply add this line:

akka.persistence.snapshot.plugin = "akka-persistence-redis.snapshot"

Using the Journal Query Interface Component

To use the journal query component, you need to enable it in your configuration. To use the default settings, simply add this line:

import akka.persistence.query._
import akka.persistence.query.journal.redis._

val readJournal = PersistenceQuery(system)
  .readJournalFor[ScalaReadJournal]("akka-persistence-redis.read-journal")

For more details on the available capabilities of the journal query, please refer to the API documentation.

Database Configuration

This plugin uses rediscala to connect to redis databases and is configured using Typesafe config library.

Akka persistence redis plugin supports following modes for connecting to Redis:

  • simple
  • sentinel

A default database configuration is used for all components, under the path akka-persistence-redis.redis. You may either override this path to apply changes to all components, or override it locally for each component.

See the reference configuration for more details on possible configuration.

License

This work is inspired by Akka Persistence Redis Plugin by HootSuite Media Inc licensed under Apache license version 2.

Copyright © 2017 Safety Data - CFH SAS.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].