Original here: https://github.com/krasserm/akka-persistence-testkit
New features:
* merged martin's tests
* usable from java (junit 4)
* simple bench test, which helps checking if ordering is perserved under
bigger workloads and simple perf checking
* does NOT include tests for already deprecated features (deleteMessages)
* docs
Resolves#13815
Conflicts:
project/AkkaBuild.scala
Updated release date for "Akka Concurrency" and "Akka in Action" release date estimate, and added references to two books, "Effective Akka" and "Developing an Akka Edge".
This patch removes a lock around the getter of _logLevel. The setter is
still guarded for consistency. Note that out of thin-air reads, while
not excluded under the current JMM, are forbidden by current hardware.
Signed-off-by: Duarte Nunes <duarte.m.nunes@gmail.com>
* When using the Processor batching buffer for persistAsync and defer
the events were unstashed by Processor.aroundPreRestart and
thereby were received as commands after restart
* Instead we must flush this buffer when using PersistentActor
(cherry picked from commit 627ce2fc85739e221524ec48725362ef7c0566ea)
* I suspect that the issue #15440 happens because of replay of events
in wrong order (ShardHomeAllocated received before ShardRegionRegistered)
by the hbase journal
* This does not fix that issue, but the additional invariant checks and
debug statements would perhaps make it easier for us to diagnose such
issues
* These changes also ensures that the allocation strategy does not return
the wrong thing.
* It also tightens a possible error if a region is terminated while a
rebalance is in progress
(cherry picked from commit d07b9db4958236d580b8bfb8f92461969ff88cbc)
We must first release akka-stream with dependency to akka 2.3.4
and it should be maintained in the akka-release-dev branch
(cherry picked from commit a97a067701cfc527b235707882e72326277415f3)
Conflicts:
akka-samples/akka-sample-persistence-scala/build.sbt
akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/StreamExample.scala
We have assumed that the handlers can be popped when replies come back from journal, but if messages to journal are in flight when the actor is restarted the handlers does not match up with journal replies.
This solution ignores journal replies that were emitted by an old PersistentActor instance
by passing an uid with the journal messages. This means that the handler will not be
invoked for such messages.
(cherry picked from commit 7ebaaab669c9e467a1ffb4d9ed8b6500e1801a7c)
Conflicts:
akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
akka-persistence/src/main/scala/akka/persistence/Processor.scala
akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala
* A few more adjustments, found when verifying source compatibility of a few
journal plugins
* Note that PersistentId will be removed with deleteMessage and we should
not break plugins because of that
* Add missing section of at-least-once delivery in migration guide
(cherry picked from commit 6727eac6d07280d277968e2e25db44e02be3b102)
Conflicts:
akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
akka-persistence/src/main/scala/akka/persistence/Persistent.scala
akka-persistence/src/main/scala/akka/persistence/Snapshot.scala
akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteProxy.scala
* It was detected previously as well when trying to find constructor,
but with a perhaps confusing error message
(cherry picked from commit 15e964b13e91962474c7907787c37121aae8fd4e)