* Table switch for interpreter ~20% faster
* Avoid instanceof on message in interpreter (but keep single method)
~10% faster
* Use the behavior tags all over ~4% improvement
* Make next a single tableswitch
* Behavior.wrap isn't actually used anymore
* Sidestep the untyped behavior stack
* The scenario was (probably) that a node was restarted with
same host:port and then didn't join the same cluster. The DData
Replicator in the original cluster would continue sending messages
to the new incarnation resulting in false removals.
* The fix is that DData Replicator includes the system uid of the sending
or target system in messages and if recipient gets a message that is from/to
unknown it will discard it and thereby not spreading information across
different clusters.
* Reproduced in ClusterReceptionistSpec
* Much hardening of other things in ClusterReceptionistSpec
* There are also some improvements to ClusterReceptionist to not leak
Listing with refs of removed nodes.
* use ClusterShuttingDown
* The reason for using sender system uid instead of target uid in messages
like Read and Write is that then the optimization for sending same message
to many destinations can remain.
* Adds internal access to materializer before initialization (#25324)
* Implements new actorRef source based on graph stage (#25324)
* Removes obsolete actorRef source (#25324)
* Improves backwards compatibility with old implementation (#25324)
* Removes dedicated new subclass for materializer access again (#25324)
* Improves implementation (#25324)
* Finalizes implementation (#25324)
* Small improvements to API and documentation (#25324)
* Completion strategy as a replacement for poison pill (#25324)
* Adding more tests and updating the documentation (#25324)
* Enable strict scalac options for akka-protobuf
Unfortunately it still produces a Java warning, but I see no safe way around
that (so we can't just add `-Werror` to javacOptions)
* Remove 'dead' code, bringing the class back in line with upstream
* Handle unhandled while unstashing #26362
* Handle stop while unstashing
* unstashing with initial Behaviors.same to refer to current actor behavior
* Unstash into deadletter when stopping during unstash
* More unhandled test coverage
* Avoid expecting ActorContextAdapter for internals
currentBehavior and onUnhandled moved to scaladsl.ActorContext as internal methods
allowing support for touching them also in the behavior testkit
* Scaladoc fixes
* Some more periods
* Adds JoiningSeedNodesUnsuccessfulReason
* Promotes IncompatibleConfigurationDetectedReason to public API
* Rename class after PR comments
* Use a custom exit code on joinUnsuccesful shuhtdown
* Mima
* Scalafmt
So now we can compile akka-distributed-data with
-Xfatal-warnings - though I'm not yet sure about
enabling the (other) undisciplineScalacOptions
* Fix multi-node silencing
* Fix scaladoc warnings
* Introduce annotation to declare ccompat use
* Add explicit toString
* Fix deprecation on 2.13
* Move 'immutable' ccompat helpers to shared ccompat package
* Add MiMa for internal scala 2.13 compatibility class
* Internal API markers
* Fix scaladoc generation
Got bitten by https://github.com/scala/bug/issues/11021
* Make akka-persistence-typed SideEffect internal #26044
* Minimal docs update
* More private. Formatting.
* More public usages of SideEffect
Also: made scaladsl.Effect a pure trait for consistency
* Review feedback
* extract validation of persistence plugin config
* The reason for the duplicate check in EventSourcedSettings
is for better user experience. Fail fast before the actor is
started.
* The checks must still also be done when plugin is loaded, since
that is what is used by untyped.
* Extracted into static utility methods in Persistence
* When storing a snapshot, and waiting for the response, it received a
response from a previous/concurrent delete snapshot (DeleteSnapshotSuccess)
which it handled as a response for the save snapshot, i.e. tryUnstashOne, applySideEffects,
and changing phase to HandlingCommands. Thereby missing the SaveSnapshotSuccess.
* This may look like a duplicating the existing classes from untyped
persistence without any value, but those two classes were there only
two from untyped that were exposed in end user APIs.
* This makes the API independent of untyped.
* Those classes can be evolved (much) easier since they are not case classes.
* Subtraction of sequenceNr (keepNSnapshots * snapshotEveryNEvents) was missing when
calling internalDeleteSnapshots directly from SaveSnapshotSuccess, i.e. when not
triggered via delete events.
* Improved the test
* Also found that the responses for deletion of events and snapshots were not
handled in all 3 running phases. Since they are performed in the background
they may be received in all.