https://github.com/j5ik2o/akka-persistence-s3
akka-persistence journal/snapshot plugin for AWS S3(support aws sdk for java v2)
https://github.com/j5ik2o/akka-persistence-s3
akka akka-persistence aws-java-sdk-v2 aws-s3
Last synced: 3 months ago
JSON representation
akka-persistence journal/snapshot plugin for AWS S3(support aws sdk for java v2)
- Host: GitHub
- URL: https://github.com/j5ik2o/akka-persistence-s3
- Owner: j5ik2o
- License: apache-2.0
- Created: 2019-02-25T10:39:23.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-01-04T07:22:58.000Z (over 1 year ago)
- Last Synced: 2025-03-22T10:23:59.094Z (3 months ago)
- Topics: akka, akka-persistence, aws-java-sdk-v2, aws-s3
- Language: Scala
- Homepage:
- Size: 590 KB
- Stars: 21
- Watchers: 4
- Forks: 6
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# akka-persistence-s3(support aws sdk for java v2)
[](https://github.com/j5ik2o/akka-persistence-s3/actions?query=workflow%3ACI)
[](https://scala-steward.org)
[](https://maven-badges.herokuapp.com/maven-central/com.github.j5ik2o/akka-persistence-s3_2.12)
[](https://opensource.org/licenses/Apache-2.0)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fj5ik2o%2Fakka-persistence-s3?ref=badge_shield)akka-persistence-s3 writes snapshot entries to AWS S3. It's non-blocking I/ O used by [aws-sdk-java-v2](https://github.com/aws/aws-sdk-java-v2).
## Supported versions:
- Java: `1.8+`
- Scala: `2.12.x` or `2.13.x` or `3.0.0`
- Akka: `2.6.x`
- AWS-SDK: `2.4.x`## Installation
Add the following to your sbt build (2.12.x, 2.13.x, 3.0.0):
```scala
val version = "..."libraryDependencies += Seq(
"com.github.j5ik2o" %% "akka-persistence-s3-journal" % version,
"com.github.j5ik2o" %% "akka-persistence-s3-snapshot" % version
)
```## Configuration
The minimum necessary settings are as follows.
```
j5ik2o {
s3-snapshot-store {
# if need to resolve a static value
# bucket-name = "..."
# if need to resolve a dynamic value
bucket-name-resolver-class-name = "com.github.j5ik2o.akka.persistence.s3.resolver.BucketNameResolver$PersistenceId"
key-converter-class-name = "com.github.j5ik2o.akka.persistence.s3.resolver.KeyConverter$PersistenceId"
# if need to resolve a static value
# path-prefix = "..."
# if need to resolve a dynamic value
path-prefix-resolver-class-name = "com.github.j5ik2o.akka.persistence.s3.resolver.PathPrefixResolver$PersistenceId"
extension-name = "snapshot"
max-load-attempts = 3
s3-client {
# Set the following as needed
access-key-id = "..."
secret-access-key = "..."
endpoint = "..."
region = "..."
max-concurrency = 128
max-pending-connection-acquires = ?
read-timeout = 3 s
write-timeout = 3 s
connection-timeout = 3 s
connection-acquisition-timeout = 3 s
connection-time-to-live = 3 s
max-idle-connection-timeout = 3 s
use-connection-reaper = true
threads-of-event-loop-group = 32
user-http2 = true
max-http2-streams = 32
batch-get-item-limit = 100
batch-write-item-limit = 25
s3-options {
dualstack-enabled = false
accelerate-mode-enabled = false
path-style-access-enabled = true
checksum-validation-enabled = false
chunked-encoding-enabled = false
use-arn-region-enabled = false
}
}
}
}
```## License
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fj5ik2o%2Fakka-persistence-s3?ref=badge_large)