{"id":37026159,"url":"https://github.com/safety-data/akka-persistence-redis","last_synced_at":"2026-01-14T03:02:14.702Z","repository":{"id":57728846,"uuid":"87089679","full_name":"safety-data/akka-persistence-redis","owner":"safety-data","description":"Akka persistence plugin for Redis","archived":true,"fork":false,"pushed_at":"2020-05-27T07:56:20.000Z","size":1539,"stargazers_count":27,"open_issues_count":4,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-07-26T22:37:08.682Z","etag":null,"topics":["akka-persistence","journal","read-journal","redis","snapshot"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/safety-data.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-03T15:27:23.000Z","updated_at":"2023-01-28T14:23:52.000Z","dependencies_parsed_at":"2022-09-09T10:00:40.779Z","dependency_job_id":null,"html_url":"https://github.com/safety-data/akka-persistence-redis","commit_stats":null,"previous_names":[],"tags_count":5,"template":null,"template_full_name":null,"purl":"pkg:github/safety-data/akka-persistence-redis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safety-data%2Fakka-persistence-redis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safety-data%2Fakka-persistence-redis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safety-data%2Fakka-persistence-redis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safety-data%2Fakka-persistence-redis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/safety-data","download_url":"https://codeload.github.com/safety-data/akka-persistence-redis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/safety-data%2Fakka-persistence-redis/sbom","scorecard":{"id":794833,"data":{"date":"2025-08-11","repo":{"name":"github.com/safety-data/akka-persistence-redis","commit":"f609a6a5e72b34de3259cd1ced3a3507fb74afda"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":2,"reason":"Found 3/14 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 22 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T08:38:06.874Z","repository_id":57728846,"created_at":"2025-08-23T08:38:06.874Z","updated_at":"2025-08-23T08:38:06.874Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akka-persistence","journal","read-journal","redis","snapshot"],"created_at":"2026-01-14T03:02:13.980Z","updated_at":"2026-01-14T03:02:14.681Z","avatar_url":"https://github.com/safety-data.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Akka Persistence Redis Plugin\n[![Build Status](https://travis-ci.org/safety-data/akka-persistence-redis.svg?branch=master)](https://travis-ci.org/safety-data/akka-persistence-redis)\n\n**Note:** Safety Data is no longer using Redis in our currently developed projects, and has stopped maintaining this repository. Feel free to fork!\n\n- [Scaladoc](https://safety-data.github.io/akka-persistence-redis/latest/api/index.html)\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [What is it?](#what-is-it)\n- [Installation](#installation)\n- [(De)Serialization](#deserialization)\n- [Using the Journal Component](#using-the-journal-component)\n  - [Tags](#tags)\n- [Using the Snapshot Component](#using-the-snapshot-component)\n- [Using the Journal Query Interface Component](#using-the-journal-query-interface-component)\n- [Database Configuration](#database-configuration)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## What is it?\n\nAkka Persistence Redis Plugin is a plugin for [Akka persistence](http://doc.akka.io/docs/akka/2.4/scala/persistence.html) that provides several components:\n - a journal store ;\n - a snapshot store ;\n - a journal query interface implementation.\n\nThis plugin stores data in a [redis](https://redis.io) database.\n\n## Installation\n\nThe plugin is compiled with Scala 2.13, 2.12 and 2.11 and deployed on the maven sonatype repositories.\nTo use the plugin add this to your sbt build file :\n\n```scala\nlibraryDependencies += \"com.safety-data\" %% \"akka-persistence-redis\" % \"0.4.2\"\n```\n\n_Note_: for snapshot versions you will need to add the sonatype snapshot resolver.\n\n## (De)Serialization\n\nThe journal and snapshot components save serialized values into the database.\nThey rely on the [Akka serialization extension](http://doc.akka.io/docs/akka/2.4/scala/serialization.html).\nCustom serialization can be added to handle you data model elements as you wish.\n\n## Using the Journal Component\n\nTo use the journal component, you need to enable it in your configuration. To use the default settings, simply add this line:\n\n```scala\nakka.persistence.journal.plugin = \"akka-persistence-redis.journal\"\n```\n\n### Tags\n\nThe journal component has support for tagged events.\nAll events wrapped inside an instance of class `akka.persistence.journal.Tagged` are associated to the provided tags in the data store.\n\n## Using the Snapshot Component\n\nTo use the snapshot component, you need to enable it in your configuration. To use the default settings, simply add this line:\n\n```scala\nakka.persistence.snapshot.plugin = \"akka-persistence-redis.snapshot\"\n```\n\n## Using the Journal Query Interface Component\n\nTo use the journal query component, you need to enable it in your configuration. To use the default settings, simply add this line:\n\n```scala\nimport akka.persistence.query._\nimport akka.persistence.query.journal.redis._\n\nval readJournal = PersistenceQuery(system)\n  .readJournalFor[ScalaReadJournal](\"akka-persistence-redis.read-journal\")\n```\n\nFor more details on the available capabilities of the journal query, please refer to the [API documentation](https://safety-data.github.io/akka-persistence-redis/latest/api/akka/persistence/query/journal/redis/ScalaReadJournal.html).\n\n## Database Configuration\n\nThis plugin uses [rediscala](https://github.com/Ma27/rediscala) to connect to redis databases and is configured using [Typesafe config](https://github.com/typesafehub/config/) library.\n\nAkka persistence redis plugin supports following modes for connecting to Redis:\n - simple\n - sentinel\n\nA 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.\n\nSee the [reference configuration](src/main/resources/reference.conf) for more details on possible configuration.\n\n## License\n\nThis work is inspired by [Akka Persistence Redis Plugin](https://github.com/hootsuite/akka-persistence-redis) by HootSuite Media Inc licensed under Apache license version 2.\n\nCopyright © 2017 Safety Data - CFH SAS.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafety-data%2Fakka-persistence-redis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsafety-data%2Fakka-persistence-redis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsafety-data%2Fakka-persistence-redis/lists"}