You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by fa...@apache.org on 2022/10/31 13:40:11 UTC
[incubator-pekko-persistence-dynamodb] branch main updated: Prep 1.3.0 (#115)
This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-persistence-dynamodb.git
The following commit(s) were added to refs/heads/main by this push:
new 27f9e01 Prep 1.3.0 (#115)
27f9e01 is described below
commit 27f9e016b2cc610e66e28b75bb7305d1e5ef4cee
Author: Corey O'Connor <co...@gmail.com>
AuthorDate: Sun Sep 18 10:19:01 2022 -0700
Prep 1.3.0 (#115)
* prep for 1.3.0
* Use DynamoDB over Dynamodb for consistency
Matches current usage as well as AWS classes.
---
CHANGELOG.md | 44 ++++++++++++++++
README.md | 60 ++++++----------------
RELEASING.md | 2 +-
src/main/resources/reference.conf | 34 ++++++------
.../dynamodb/query/DynamoDBReadJournalConfig.scala | 4 +-
...der.scala => DynamoDBReadJournalProvider.scala} | 10 ++--
...ReadJournal.scala => DynamoDBReadJournal.scala} | 14 ++---
...ynamoDBCurrentEventsByPersistenceIdQuery.scala} | 2 +-
...la => DynamoDBCurrentPersistenceIdsQuery.scala} | 8 +--
...ReadJournal.scala => DynamoDBReadJournal.scala} | 14 ++---
...ynamoDBCurrentEventsByPersistenceIdQuery.scala} | 10 ++--
...la => DynamoDBCurrentPersistenceIdsQuery.scala} | 8 +--
...ReadJournal.scala => DynamoDBReadJournal.scala} | 14 ++---
.../dynamodb/journal/DeletionSpec.scala | 4 +-
.../dynamodb/journal/RecoveryConsistencySpec.scala | 4 +-
.../dynamodb/query/CurrentPersistenceIdsSpec.scala | 4 +-
16 files changed, 125 insertions(+), 111 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..db605ab
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,44 @@
+Changelog
+=========
+
+v 1.3.0
+--------------------
+
+* Implementation of Akka Persistence Query. Thanks [Joost de Vries](https://github.com/joost-de-vries)!
+ See (Configuration)[#read-journal-akka-persistence-query) for required setup.
+
+v 1.1.2 (v 1.2.0)
+----------------------------
+
+This was supposed to be released as `v1.2.0` but was released as `v1.1.2` to maven. Sorry about that!
+
+* Use DynamoDB Query during journal replay - https://github.com/akka/akka-persistence-dynamodb/issues/106
+* Correct issue [#98](https://github.com/akka/akka-persistence-dynamodb/issues/98)
+ Please see [fixes in `reference.conf`](blob/master/src/main/resources/reference.conf) for a workaround for systems impacted by this issues.
+* Depends on Akka 2.5.
+* Adds Support for the Async Serializers - which enables the use of the plugin with Lightbend extensions [GDPR Addons](https://developer.lightbend.com/docs/akka-commercial-addons/current/gdpr/index.html)
+
+Schema changes are required in order to support async serializers as we need to know what data deserializer to use for the data payload.
+The data payload is stored in a dedicated `event` field. Going towards similar schema as [akka-persistence-cassandra](https://github.com/akka/akka-persistence-cassandra)
+
+*Journal Plugin*
+~~~
+val Event = "event" -> PeristentRepr.payload
+val SerializerId = "ev_ser_id" -> Serializer id used for serializing event above
+val SerializerManifest = "ev_ser_manifest" -> Serializer manifest of the event above
+val Manifest = "manifest" -> String manifest used for whole PeristentRepr
+
+~~~
+
+*Snapshot Plugin*
+~~~
+val SerializerId = "ser_id" -> Serializer used for serializing the snapshot payload
+val SerializerManifest = "ser_manifest" -> String manifest of the snapshot payload
+val PayloadData = "pay_data" -> the actual serialized data of the snapshot, need to distinguish between the old a new format
+~~~
+The existence of the old `val Payload = "pay"` field triggers old serialization. The new serialization doesn't Serialize theq
+Snapshot wrapper class.
+
+
+Both Journal and Snapshot checks the existence of new data fields first and switches the behaviour in order
+to make the change backwards compatible.
diff --git a/README.md b/README.md
index 0d0a5f1..6bde46a 100644
--- a/README.md
+++ b/README.md
@@ -5,11 +5,11 @@ A replicated [Akka Persistence](http://doc.akka.io/docs/akka/2.4.0/scala/persist
[Amazon DynamoDB](http://aws.amazon.com/dynamodb/).
- This plugin implements both a journal as well as a snapshot store,
-- Please note, however, that it does not include an Akka Persistence Query plugin.
+- This includes a Akka Persistence Query plugin. However, this requires an additional GSI for efficient usage.
Supported versions:
- Scala: `2.12.x`, `2.13.x`
-- Akka: `2.4.14+` and `2.5.x+` and `2.6.x+` (see notes below how to use with 2.5)
+- Akka: `2.5.x+` and `2.6.x+`
- Java: `1.8+`
[![Join the chat at https://gitter.im/akka/akka-persistence-dynamodb](https://badges.gitter.im/akka/akka-persistence-dynamodb.svg)](https://gitter.im/akka/akka-persistence-dynamodb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -23,15 +23,15 @@ This plugin is published to the Maven Central repository with the following name
~~~
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-persistence-dynamodb_2.11</artifactId>
- <version>1.2.0-RC2</version>
+ <artifactId>akka-persistence-dynamodb_2.13</artifactId>
+ <version>1.3.0</version>
</dependency>
~~~
or for sbt users:
```sbt
-libraryDependencies += "com.typesafe.akka" %% "akka-persistence-dynamodb" % "1.2.0-RC2"
+libraryDependencies += "com.typesafe.akka" %% "akka-persistence-dynamodb" % "1.3.0"
```
Configuration
@@ -81,10 +81,10 @@ The table to create for snapshot storage has the schema:
* a sort key of type Number with name `ts`
* a local secondary index with name `ts-idx` that is an index on the combination of `par` and `ts`
-The Dynamodb item of a snapshot [can be 400 kB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-items). Using a binary serialisation format like ProtoBuf or Kryo will use that space most effectively.
+The DynamoDB item of a snapshot [can be 400 kB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-items). Using a binary serialisation format like ProtoBuf or Kryo will use that space most effectively.
### Read journal (Akka persistence query)
-(**Since:** `1.3.0`; contributed by [@joost-de-vries](https://github.com/joost-de-vries))
+(**Since:** `1.3.0`; contributed by [@joost-de-vries](https://github.com/joost-de-vries))
See `CreatePersistenceIdsIndex.createPersistenceIdsIndexRequest` how to create the Global Secondary Index that is required to query currentPersistenceIds
~~~
dynamodb-read-journal {
@@ -207,44 +207,10 @@ When writing an item we typically do not touch the high sequence number storage,
Using with Akka 2.5.x
---------------------
-This plugin depends on Akka 2.4, however since [Akka maintains strict backwards compatibility guarantees](http://doc.akka.io/docs/akka/current/scala/common/binary-compatibility-rules.html) across minor versions,
-it is completely compatible to use this plugin with Akka 2.5.x.
-
-Please make sure to depend on all Akka artifacts (those with the artifact name begining with `akka-*`) are depended on in the same version - as mixing versions is *not* legal. For example, if you depend on Akka Persistence in `2.5.3`, make sure that Akka Streams and Actors are also depended on in the same version. Please always use the latest patch version available (!).
-
-Changelog
----------------------
-
-v 1.2.0
----------------------
-
-* Depends on Akka 2.5.
-* Adds Support for the Async Serializers - which enables the use of the plugin with Lightbend extensions [GDPR Addons](https://developer.lightbend.com/docs/akka-commercial-addons/current/gdpr/index.html)
-
-Schema changes are required in order to support async serializers as we need to know what data deserializer to use for the data payload.
-The data payload is stored in a dedicated `event` field. Going towards similar schema as [akka-persistence-cassandra](https://github.com/akka/akka-persistence-cassandra)
-
-*Journal Plugin*
-~~~
-val Event = "event" -> PeristentRepr.payload
-val SerializerId = "ev_ser_id" -> Serializer id used for serializing event above
-val SerializerManifest = "ev_ser_manifest" -> Serializer manifest of the event above
-val Manifest = "manifest" -> String manifest used for whole PeristentRepr
-
-~~~
-
-*Snapshot Plugin*
-~~~
-val SerializerId = "ser_id" -> Serializer used for serializing the snapshot payload
-val SerializerManifest = "ser_manifest" -> String manifest of the snapshot payload
-val PayloadData = "pay_data" -> the actual serialized data of the snapshot, need to distinguish between the old a new format
-~~~
-The existence of the old `val Payload = "pay"` field triggers old serialization. The new serialization doesn't Serialize theq
-Snapshot wrapper class.
-
-
-Both Journal and Snapshot checks the existence of new data fields first and switches the behaviour in order
-to make the change backwards compatible.
+Please make sure to depend on all Akka artifacts (those with the artifact name begining with
+`akka-*`) are depended on in the same version - as mixing versions is *not* legal. For example, if
+you depend on Akka Persistence in `2.5.3`, make sure that Akka Streams and Actors are also depended
+on in the same version. Please always use the latest patch version available (!).
Credits
-------
@@ -252,6 +218,10 @@ Credits
- Initial development was done by [Scott Clasen](https://github.com/sclasen/akka-persistence-dynamodb).
- Update to Akka 2.4 and further development up to version 1.0 was kindly sponsored by [Zynga Inc.](https://www.zynga.com/).
- The snapshot store and readjournal were contributed by [Joost de Vries](https://github.com/joost-de-vries)
+- [Corey O'Connor](https://dogheadbone.com/)
+- Ryan Means
+- Jean-Luc Deprez
+- Michal Janousek
Support
-------
diff --git a/RELEASING.md b/RELEASING.md
index b6fe03a..3413833 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -1,7 +1,7 @@
How to release
--------------
-- create an annotated tag for the next version. EG: `git tag -a -m 'release v1.2.0-RC2' v1.2.0-RC2`
+- create an annotated tag for the next version. EG: `git tag -a -m 'release v1.3.1' v1.3.1`
- push tags and commits to akka remote master
- If the workspace is not clean or HEAD != the tag then published version will be a snapshot. To use
exactly the tagged version the workspace must be clean and there are no additional commits beyond
diff --git a/src/main/resources/reference.conf b/src/main/resources/reference.conf
index e5b59a3..5d4213c 100644
--- a/src/main/resources/reference.conf
+++ b/src/main/resources/reference.conf
@@ -16,33 +16,33 @@ dynamodb-journal {
# The FQCN for the journal plugin implementation - DO NOT CHANGE
class = "akka.persistence.dynamodb.journal.DynamoDBJournal"
-
+
# The service endpoint to connect to for the DynamoDB instance that
# shall be used. Please refer to the AWS documentation for details.
endpoint = ""
-
+
# The dispatcher that executes the replay logic for this plugin
# instance - should not normally need to be changed.
replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
-
+
# The dispatcher that executes the future combinators needed for
# transforming the AmazonDynamoDBAsyncClient results (i.e.
# handling the back-off etc.)
client-dispatcher = "dynamodb-journal.dispatcher"
-
+
# The dispatcher that executes the write logic for this plugin
# instance - should not normally need to be changed.
plugin-dispatcher = "dynamodb-journal.dispatcher"
-
+
# The name of the DynamoDB table to be used for this plugin instance
journal-table = "akka-persistence"
-
+
# The logical journal name, used in the partition keys.
journal-name = "journal"
-
+
# The number of shards to distribute the sequence number items over.
sequence-shards = 10
-
+
# The AWS key ID to use for connecting to the specified endpoint.
# Will only be used if aws-secret-access-key is also set.
#
@@ -50,7 +50,7 @@ dynamodb-journal {
# empty in order to use the default credentials provider chain, see
# http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/credentials.html#using-the-default-credential-provider-chain
aws-access-key-id = ""
-
+
# The AWS secret to use in conjuction with the AWS key ID.
# Will only be used if aws-access-key-id is also set.
#
@@ -58,27 +58,27 @@ dynamodb-journal {
# empty in order to use the default credentials provider chain, see
# http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/credentials.html#using-the-default-credential-provider-chain
aws-secret-access-key = ""
-
+
# number of concurrently running replay prefetch operations for a
# single PersistentActor; this prefetch means that during a replay
# more events might be retrieved than specified with the `max`
# parameter, with corresponding usage DynamoDB read units
replay-parallelism = 10
-
+
# If this is set to `on` then every DynamoDB request will be logged
# at DEBUG level. Caution: this will generate A LOT of output.
tracing = off
-
+
# Set to `on` to log the detected configuration at INFO level at plugin startup.
log-config = off
-
+
# AWS API limits - DO NOT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING
aws-api-limits {
max-batch-get = 100
max-batch-write = 25
max-item-size = 400000
}
-
+
# AWS client configuration settings, see
# http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/?com/amazonaws/ClientConfiguration.html
#
@@ -111,7 +111,7 @@ dynamodb-journal {
use-tcp-keepalive = default # boolean
user-agent = default # string
}
-
+
dispatcher {
type = Dispatcher
executor = "fork-join-executor"
@@ -136,7 +136,7 @@ dynamodb-journal {
# This is a performance/consistency tradeoff to be made. It should not be required for newly
# created event sources that have the root cause fix, hence it is off by default.
# NOTE: With current implementation of the high mark being written after the events,
- # there is a slim chance that a valid event source is written, but a network error occurs
+ # there is a slim chance that a valid event source is written, but a network error occurs
# before the high mark is written. In this case the write would be reported as failed to the
# writing party. Whether you want to "keep the event source" is up for discussion. But this fix
# would also recover from that situation.
@@ -195,7 +195,7 @@ dynamodb-snapshot-store {
dynamodb-read-journal = ${dynamodb-journal}
dynamodb-read-journal {
- class = "akka.persistence.dynamodb.query.DynamodbReadJournalProvider"
+ class = "akka.persistence.dynamodb.query.DynamoDBReadJournalProvider"
# The name of the Global Secondary Index that is used to query currentPersistenceIds
# see CreatePersistenceIdsIndex.createPersistenceIdsIndexRequest
diff --git a/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalConfig.scala b/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalConfig.scala
index e116680..caedb19 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalConfig.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalConfig.scala
@@ -1,6 +1,6 @@
package akka.persistence.dynamodb.query
import akka.actor.ActorSystem
-import akka.persistence.dynamodb.query.scaladsl.DynamodbReadJournal
+import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal
import akka.persistence.dynamodb.{ ClientConfig, DynamoDBClientConfig, DynamoDBConfig }
import com.typesafe.config.Config
@@ -31,5 +31,5 @@ class DynamoDBReadJournalConfig(c: Config) extends DynamoDBConfig {
}
object DynamoDBReadJournalConfig {
def apply()(implicit actorSystem: ActorSystem) =
- new DynamoDBReadJournalConfig(actorSystem.settings.config.getConfig(DynamodbReadJournal.Identifier))
+ new DynamoDBReadJournalConfig(actorSystem.settings.config.getConfig(DynamoDBReadJournal.Identifier))
}
diff --git a/src/main/scala/akka/persistence/dynamodb/query/DynamodbReadJournalProvider.scala b/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalProvider.scala
similarity index 73%
rename from src/main/scala/akka/persistence/dynamodb/query/DynamodbReadJournalProvider.scala
rename to src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalProvider.scala
index f378f86..95097b4 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/DynamodbReadJournalProvider.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/DynamoDBReadJournalProvider.scala
@@ -1,19 +1,19 @@
package akka.persistence.dynamodb.query
import akka.actor.ExtendedActorSystem
-import akka.persistence.dynamodb.query.javadsl.{ DynamodbReadJournal => JavaDynamodbReadJournal }
-import akka.persistence.dynamodb.query.scaladsl.internal.{ DynamodbReadJournal => ScalaDynamodbReadJournal }
+import akka.persistence.dynamodb.query.javadsl.{ DynamoDBReadJournal => JavaDynamoDBReadJournal }
+import akka.persistence.dynamodb.query.scaladsl.internal.{ DynamoDBReadJournal => ScalaDynamoDBReadJournal }
import akka.persistence.query.ReadJournalProvider
import akka.persistence.query.javadsl.{ ReadJournal => JavaReadJournal }
import akka.persistence.query.scaladsl.{ ReadJournal => ScalaReadJournal }
import com.typesafe.config.Config
-class DynamodbReadJournalProvider(system: ExtendedActorSystem, config: Config, configPath: String)
+class DynamoDBReadJournalProvider(system: ExtendedActorSystem, config: Config, configPath: String)
extends ReadJournalProvider {
- private lazy val _scalaReadJournal = new ScalaDynamodbReadJournal(config, configPath)(system)
+ private lazy val _scalaReadJournal = new ScalaDynamoDBReadJournal(config, configPath)(system)
override def scaladslReadJournal(): ScalaReadJournal = _scalaReadJournal
- private lazy val _javadslReadJournal = new JavaDynamodbReadJournal(_scalaReadJournal)
+ private lazy val _javadslReadJournal = new JavaDynamoDBReadJournal(_scalaReadJournal)
override def javadslReadJournal(): JavaReadJournal = _javadslReadJournal
}
diff --git a/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamodbReadJournal.scala b/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala
similarity index 88%
rename from src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamodbReadJournal.scala
rename to src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala
index 89ea19c..21014f4 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamodbReadJournal.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/javadsl/DynamoDBReadJournal.scala
@@ -6,10 +6,10 @@ import akka.stream.javadsl.Source
import akka.persistence.dynamodb.query.scaladsl
import akka.persistence.query.javadsl.{ CurrentEventsByPersistenceIdQuery, CurrentPersistenceIdsQuery }
-object DynamodbReadJournal {
+object DynamoDBReadJournal {
/**
- * The default identifier for [[DynamodbReadJournal]] to be used with
+ * The default identifier for [[DynamoDBReadJournal]] to be used with
* `akka.persistence.query.PersistenceQuery#readJournalFor`.
*
* The value is `"dynamodb-read-journal"` and corresponds
@@ -23,17 +23,17 @@ object DynamodbReadJournal {
*
* It is retrieved with:
* {{{
- * DynamodbReadJournal queries =
- * PersistenceQuery.get(system).getReadJournalFor(DynamodbReadJournal.class, DynamodbReadJournal.Identifier());
+ * DynamoDBReadJournal queries =
+ * PersistenceQuery.get(system).getReadJournalFor(DynamoDBReadJournal.class, DynamoDBReadJournal.Identifier());
* }}}
*
- * Corresponding Scala API is in [[DynamodbReadJournal]].
+ * Corresponding Scala API is in [[DynamoDBReadJournal]].
*
* Configuration settings can be defined in the configuration section with the
* absolute path corresponding to the identifier, which is `"dynamodb-read-journal"`
- * for the default [[DynamodbReadJournal#Identifier]]. See `reference.conf`.
+ * for the default [[DynamoDBReadJournal#Identifier]]. See `reference.conf`.
*/
-class DynamodbReadJournal(scaladslReadJournal: scaladsl.DynamodbReadJournal)
+class DynamoDBReadJournal(scaladslReadJournal: scaladsl.DynamoDBReadJournal)
extends akka.persistence.query.javadsl.ReadJournal
// with akka.persistence.query.javadsl.EventsByTagQuery
with CurrentEventsByPersistenceIdQuery
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentEventsByPersistenceIdQuery.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentEventsByPersistenceIdQuery.scala
similarity index 93%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentEventsByPersistenceIdQuery.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentEventsByPersistenceIdQuery.scala
index 0e064a7..356aac5 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentEventsByPersistenceIdQuery.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentEventsByPersistenceIdQuery.scala
@@ -5,7 +5,7 @@ import akka.persistence.query.EventEnvelope
import akka.persistence.query.scaladsl.CurrentEventsByPersistenceIdQuery
import akka.stream.scaladsl.Source
-trait DynamodbCurrentEventsByPersistenceIdQuery extends CurrentEventsByPersistenceIdQuery {
+trait DynamoDBCurrentEventsByPersistenceIdQuery extends CurrentEventsByPersistenceIdQuery {
/**
* Same type of query as [[akka.persistence.query.scaladsl.EventsByPersistenceIdQuery.eventsByPersistenceId]]
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentPersistenceIdsQuery.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentPersistenceIdsQuery.scala
similarity index 93%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentPersistenceIdsQuery.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentPersistenceIdsQuery.scala
index b1e482c..a8cfa8c 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbCurrentPersistenceIdsQuery.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBCurrentPersistenceIdsQuery.scala
@@ -10,7 +10,7 @@ import com.amazonaws.services.dynamodbv2.model._
import scala.concurrent.Future
-trait DynamodbCurrentPersistenceIdsQuery extends CurrentPersistenceIdsQuery {
+trait DynamoDBCurrentPersistenceIdsQuery extends CurrentPersistenceIdsQuery {
/**
* Same type of query as [[akka.persistence.query.scaladsl.PersistenceIdsQuery.persistenceIds()]] but the stream
@@ -47,7 +47,7 @@ trait CreatePersistenceIdsIndex {
self: ReadJournalSettingsProvider with DynamoProvider =>
/**
- * Update the journal table to add the Global Secondary Index 'persistence-ids-idx' that's required by [[DynamodbCurrentPersistenceIdsQuery.currentPersistenceIdsByPageQuery]]
+ * Update the journal table to add the Global Secondary Index 'persistence-ids-idx' that's required by [[DynamoDBCurrentPersistenceIdsQuery.currentPersistenceIdsByPageQuery]]
* @param alphabetically sort persistence ids
*/
def createPersistenceIdsIndex(alphabetically: Boolean = false): Future[UpdateTableResult] =
@@ -60,7 +60,7 @@ trait CreatePersistenceIdsIndex {
object CreatePersistenceIdsIndex {
- /** required by [[DynamodbCurrentPersistenceIdsQuery.currentPersistenceIdsByPageQuery]] */
+ /** required by [[DynamoDBCurrentPersistenceIdsQuery.currentPersistenceIdsByPageQuery]] */
def createPersistenceIdsIndexRequest(
indexName: String,
tableName: String,
@@ -82,7 +82,7 @@ object CreatePersistenceIdsIndex {
.withAttributeDefinitions(new AttributeDefinition().withAttributeName("num").withAttributeType("N"))
}
- /** required by [[DynamodbCurrentPersistenceIdsQuery.currentPersistenceIdsAlphabeticallyByPageQuery]] */
+ /** required by [[DynamoDBCurrentPersistenceIdsQuery.currentPersistenceIdsAlphabeticallyByPageQuery]] */
def createPersistenceIdsAlphabeticallyIndexRequest(indexName: String, tableName: String): UpdateTableRequest =
createPersistenceIdsIndexRequest(indexName = indexName, tableName = tableName, alphabetically = true)
}
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbReadJournal.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBReadJournal.scala
similarity index 61%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbReadJournal.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBReadJournal.scala
index 2e39465..77cfa66 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamodbReadJournal.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/DynamoDBReadJournal.scala
@@ -1,27 +1,27 @@
package akka.persistence.dynamodb.query.scaladsl
/**
- * Scala API `akka.persistence.query.scaladsl.ReadJournal` implementation for Dynamodb.
+ * Scala API `akka.persistence.query.scaladsl.ReadJournal` implementation for DynamoDB.
*
* It is retrieved with:
* {{{
- * val queries = PersistenceQuery(system).readJournalFor[DynamodbReadJournal](DynamodbReadJournal.Identifier)
+ * val queries = PersistenceQuery(system).readJournalFor[DynamoDBReadJournal](DynamoDBReadJournal.Identifier)
* }}}
*
- * Corresponding Java API is in [[akka.persistence.dynamodb.query.javadsl.DynamodbReadJournal]].
+ * Corresponding Java API is in [[akka.persistence.dynamodb.query.javadsl.DynamoDBReadJournal]].
*
* Configuration settings can be defined in the configuration section with the
* absolute path corresponding to the identifier, which is `"dynamodb-read-journal"`
- * for the default [[DynamodbReadJournal#Identifier]]. See `reference.conf`.
+ * for the default [[DynamoDBReadJournal#Identifier]]. See `reference.conf`.
*/
-trait DynamodbReadJournal extends DynamodbCurrentEventsByPersistenceIdQuery with DynamodbCurrentPersistenceIdsQuery {
+trait DynamoDBReadJournal extends DynamoDBCurrentEventsByPersistenceIdQuery with DynamoDBCurrentPersistenceIdsQuery {
def close(): Unit
}
-object DynamodbReadJournal {
+object DynamoDBReadJournal {
/**
- * The default identifier for [[DynamodbReadJournal]] to be used with
+ * The default identifier for [[DynamoDBReadJournal]] to be used with
* `akka.persistence.query.PersistenceQuery#readJournalFor`.
*
* The value is `"dynamodb-read-journal"` and corresponds
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentEventsByPersistenceIdQuery.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentEventsByPersistenceIdQuery.scala
similarity index 88%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentEventsByPersistenceIdQuery.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentEventsByPersistenceIdQuery.scala
index e48c359..e556f3e 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentEventsByPersistenceIdQuery.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentEventsByPersistenceIdQuery.scala
@@ -4,16 +4,16 @@ import akka.NotUsed
import akka.persistence.PersistentRepr
import akka.persistence.dynamodb.journal._
import akka.persistence.dynamodb.query.ReadJournalSettingsProvider
-import akka.persistence.dynamodb.query.scaladsl.internal.DynamodbCurrentEventsByPersistenceIdQuery.RichPersistenceRepr
+import akka.persistence.dynamodb.query.scaladsl.internal.DynamoDBCurrentEventsByPersistenceIdQuery.RichPersistenceRepr
import akka.persistence.dynamodb.query.scaladsl.{
- DynamodbCurrentEventsByPersistenceIdQuery => PublicDynamodbCurrentEventsByPersistenceIdQuery
+ DynamoDBCurrentEventsByPersistenceIdQuery => PublicDynamoDBCurrentEventsByPersistenceIdQuery
}
import akka.persistence.dynamodb.{ ActorSystemProvider, DynamoProvider, LoggingProvider, MaterializerProvider }
import akka.persistence.query.{ EventEnvelope, Sequence }
import akka.stream.scaladsl.Source
-trait DynamodbCurrentEventsByPersistenceIdQuery
- extends PublicDynamodbCurrentEventsByPersistenceIdQuery
+trait DynamoDBCurrentEventsByPersistenceIdQuery
+ extends PublicDynamoDBCurrentEventsByPersistenceIdQuery
with DynamoDBRecovery {
self: ReadJournalSettingsProvider
with DynamoProvider
@@ -57,7 +57,7 @@ trait DynamodbCurrentEventsByPersistenceIdQuery
}
}
-object DynamodbCurrentEventsByPersistenceIdQuery {
+object DynamoDBCurrentEventsByPersistenceIdQuery {
implicit class RichPersistenceRepr(val persistenceRepr: PersistentRepr) extends AnyVal {
def toEventEnvelope =
new EventEnvelope(
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentPersistenceIdsQuery.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentPersistenceIdsQuery.scala
similarity index 97%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentPersistenceIdsQuery.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentPersistenceIdsQuery.scala
index b647fc1..66ed86a 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbCurrentPersistenceIdsQuery.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBCurrentPersistenceIdsQuery.scala
@@ -2,7 +2,7 @@ package akka.persistence.dynamodb.query.scaladsl.internal
import akka.NotUsed
import akka.persistence.dynamodb.journal.JournalKeys
-import akka.persistence.dynamodb.query.scaladsl.internal.DynamodbCurrentPersistenceIdsQuery.{
+import akka.persistence.dynamodb.query.scaladsl.internal.DynamoDBCurrentPersistenceIdsQuery.{
RichNumber,
RichString,
SourceLazyOps
@@ -10,7 +10,7 @@ import akka.persistence.dynamodb.query.scaladsl.internal.DynamodbCurrentPersiste
import akka.persistence.dynamodb.query.scaladsl.internal.PersistenceIdsResult.RichPersistenceIdsResult
import akka.persistence.dynamodb.query.scaladsl.{
CreatePersistenceIdsIndex,
- DynamodbCurrentPersistenceIdsQuery => PublicDynamodbCurrentPersistenceIdsQuery
+ DynamoDBCurrentPersistenceIdsQuery => PublicDynamoDBCurrentPersistenceIdsQuery
}
import akka.persistence.dynamodb.query.{ ReadJournalSettingsProvider, RichOption }
import akka.persistence.dynamodb.{ ActorSystemProvider, DynamoProvider, LoggingProvider }
@@ -22,7 +22,7 @@ import java.util
import scala.concurrent.Future
import scala.util.control.NonFatal
-trait DynamodbCurrentPersistenceIdsQuery extends PublicDynamodbCurrentPersistenceIdsQuery {
+trait DynamoDBCurrentPersistenceIdsQuery extends PublicDynamoDBCurrentPersistenceIdsQuery {
self: ReadJournalSettingsProvider
with DynamoProvider
with ActorSystemProvider
@@ -175,7 +175,7 @@ trait DynamodbCurrentPersistenceIdsQuery extends PublicDynamodbCurrentPersistenc
}
}
-object DynamodbCurrentPersistenceIdsQuery {
+object DynamoDBCurrentPersistenceIdsQuery {
implicit class RichString(val s: String) extends AnyVal {
def toAttribute: AttributeValue = new AttributeValue().withS(s)
}
diff --git a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbReadJournal.scala b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBReadJournal.scala
similarity index 75%
rename from src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbReadJournal.scala
rename to src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBReadJournal.scala
index e18d78b..f6de391 100644
--- a/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamodbReadJournal.scala
+++ b/src/main/scala/akka/persistence/dynamodb/query/scaladsl/internal/DynamoDBReadJournal.scala
@@ -4,21 +4,21 @@ import akka.actor.ExtendedActorSystem
import akka.persistence.dynamodb._
import akka.persistence.dynamodb.journal._
import akka.persistence.dynamodb.query.scaladsl.internal.{
- DynamodbCurrentEventsByPersistenceIdQuery => InternalDynamodbCurrentEventsByPersistenceIdQuery,
- DynamodbCurrentPersistenceIdsQuery => InternalDynamodbCurrentPersistenceIdsQuery
+ DynamoDBCurrentEventsByPersistenceIdQuery => InternalDynamoDBCurrentEventsByPersistenceIdQuery,
+ DynamoDBCurrentPersistenceIdsQuery => InternalDynamoDBCurrentPersistenceIdsQuery
}
-import akka.persistence.dynamodb.query.scaladsl.{ DynamodbReadJournal => PublicDynamodbReadJournal }
+import akka.persistence.dynamodb.query.scaladsl.{ DynamoDBReadJournal => PublicDynamoDBReadJournal }
import akka.persistence.dynamodb.query.{ DynamoDBReadJournalConfig, ReadJournalSettingsProvider }
import akka.persistence.query.scaladsl.ReadJournal
import akka.serialization.{ Serialization, SerializationExtension }
import akka.stream.{ Materializer, SystemMaterializer }
import com.typesafe.config.Config
-class DynamodbReadJournal(config: Config, configPath: String)(implicit val system: ExtendedActorSystem)
+class DynamoDBReadJournal(config: Config, configPath: String)(implicit val system: ExtendedActorSystem)
extends ReadJournal
- with PublicDynamodbReadJournal
- with InternalDynamodbCurrentEventsByPersistenceIdQuery
- with InternalDynamodbCurrentPersistenceIdsQuery
+ with PublicDynamoDBReadJournal
+ with InternalDynamoDBCurrentEventsByPersistenceIdQuery
+ with InternalDynamoDBCurrentPersistenceIdsQuery
with ReadJournalSettingsProvider
with JournalSettingsProvider
with DynamoProvider
diff --git a/src/test/scala/akka/persistence/dynamodb/journal/DeletionSpec.scala b/src/test/scala/akka/persistence/dynamodb/journal/DeletionSpec.scala
index 1981778..b3f38b8 100644
--- a/src/test/scala/akka/persistence/dynamodb/journal/DeletionSpec.scala
+++ b/src/test/scala/akka/persistence/dynamodb/journal/DeletionSpec.scala
@@ -7,7 +7,7 @@ import akka.actor.ActorSystem
import akka.persistence.JournalProtocol._
import akka.persistence._
import akka.persistence.dynamodb.IntegSpec
-import akka.persistence.dynamodb.query.scaladsl.DynamodbReadJournal
+import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal
import akka.persistence.query.PersistenceQuery
import akka.stream.scaladsl.Sink
import akka.stream.{ Materializer, SystemMaterializer }
@@ -48,7 +48,7 @@ class DeletionSpec
override val persistenceId = "DeletionSpec"
implicit val materializer: Materializer = SystemMaterializer(system).materializer
lazy val journal = Persistence(system).journalFor("")
- lazy val queries = PersistenceQuery(system).readJournalFor[DynamodbReadJournal](DynamodbReadJournal.Identifier)
+ lazy val queries = PersistenceQuery(system).readJournalFor[DynamoDBReadJournal](DynamoDBReadJournal.Identifier)
val msgs = (1 to 149).map(i => s"a-$i")
val more = (150 to 200).map(i => s"b-$i")
diff --git a/src/test/scala/akka/persistence/dynamodb/journal/RecoveryConsistencySpec.scala b/src/test/scala/akka/persistence/dynamodb/journal/RecoveryConsistencySpec.scala
index 7d27605..5b8ef00 100644
--- a/src/test/scala/akka/persistence/dynamodb/journal/RecoveryConsistencySpec.scala
+++ b/src/test/scala/akka/persistence/dynamodb/journal/RecoveryConsistencySpec.scala
@@ -7,7 +7,7 @@ import akka.actor.ActorSystem
import akka.persistence.JournalProtocol._
import akka.persistence._
import akka.persistence.dynamodb._
-import akka.persistence.dynamodb.query.scaladsl.DynamodbReadJournal
+import akka.persistence.dynamodb.query.scaladsl.DynamoDBReadJournal
import akka.persistence.query.PersistenceQuery
import akka.stream.scaladsl.Sink
import akka.stream.{ Materializer, SystemMaterializer }
@@ -49,7 +49,7 @@ class RecoveryConsistencySpec
private lazy val journal = Persistence(system).journalFor("")
private lazy val queries =
- PersistenceQuery(system).readJournalFor[DynamodbReadJournal](DynamodbReadJournal.Identifier)
+ PersistenceQuery(system).readJournalFor[DynamoDBReadJournal](DynamoDBReadJournal.Identifier)
import journalSettings._
"DynamoDB Journal (Recovery)" must {
diff --git a/src/test/scala/akka/persistence/dynamodb/query/CurrentPersistenceIdsSpec.scala b/src/test/scala/akka/persistence/dynamodb/query/CurrentPersistenceIdsSpec.scala
index 3aa79cd..ace01e1 100644
--- a/src/test/scala/akka/persistence/dynamodb/query/CurrentPersistenceIdsSpec.scala
+++ b/src/test/scala/akka/persistence/dynamodb/query/CurrentPersistenceIdsSpec.scala
@@ -4,7 +4,7 @@ import akka.actor.ActorSystem
import akka.persistence.JournalProtocol._
import akka.persistence._
import akka.persistence.dynamodb.journal.DynamoDBUtils
-import akka.persistence.dynamodb.query.scaladsl.{ CreatePersistenceIdsIndex, DynamodbReadJournal }
+import akka.persistence.dynamodb.query.scaladsl.{ CreatePersistenceIdsIndex, DynamoDBReadJournal }
import akka.persistence.dynamodb.{ DynamoProvider, IntegSpec }
import akka.persistence.query.PersistenceQuery
import akka.stream.scaladsl.Sink
@@ -38,7 +38,7 @@ class CurrentPersistenceIdsSpec
private implicit val materializer: Materializer = SystemMaterializer(system).materializer
private lazy val journal = Persistence(system).journalFor("")
private lazy val queries =
- PersistenceQuery(system).readJournalFor[DynamodbReadJournal](DynamodbReadJournal.Identifier)
+ PersistenceQuery(system).readJournalFor[DynamoDBReadJournal](DynamoDBReadJournal.Identifier)
"DynamoDB ReadJournal" must {
val persistenceIds = (0 to 100).map(toPersistenceId)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org