* Apply [Boy scout rule](https://github.com/akka/akka/blob/master/CONTRIBUTING.md#additional-guidelines)
* [Bug#23329] PersistentFSM: andThen callbacks are not executed when stay()
* [fixes#23329] PersistentFSM: andThen callbacks go execute when stay()
* At documentation: there is nothing said about events applied should decide to invoke andThen or not.
* At code: andThen callback can be specified whether any events/state transition applied or not.
Added call to nextState.afterTransitionDo(stateData) even if there are no eventsToPersist
* looks like the ActorSystem is shutdown when leaving
* Included in MultiNodeSpec, i.e. all multi-node tests:
akka.coordinated-shutdown.terminate-actor-system = off
akka.oordinated-shutdown.run-by-jvm-shutdown-hook = off
* This is an optimization of TcpStreamLogic to accumulating bytes in a buffer while waiting for
acknoledgment of pending write. This improves throughput for small messages (frames)
without sacrificing latency. While waiting for the ack the stage will eagerly pull
from upstream until the buffer limit is exceeded. Accumulated bytes are written
immediately when ack is received.
* Noticed 20x throughput improvement with Artery MaxThroughputSpec thanks to this buffer
when working on the Artery TCP implementation. The small message (100 bytes) benchmark
improved from 30k msg/s to 600k msg/s.
Fixes#23921
Ensures that when an erroneous invocation of a method on `SubSink` or
`SubSource` (eg, push when not allowed), that the source of the
invocation can more easily be identified. Since the invocations on these
are generally through async callbacks, the stack trace can't be used to
help, hence why the name of the inlet/outlet (which will be included in
the error message) is so important.
* Single effect factory companion, rather than concrete types - Improves discoverability and hides implementation details (hopefully making maintenance, ensuring bin comp. etc. easier)
* Actions renamed to CommandHandler
* Rename applyEvent to eventHandler - Especially makes sense after renaming actions to command handler
* Rearrange parameters from most stable to least stable
* onRecoveryCompleted cannot modify state
* Full types for function parameters to make the API easier to understand
* Adjust cross DC gossip probability for small nr of nodes in a DC
When a Dc is being bootstrapped the initial node has no local peers and
can not gossip if it selects a local gossip round. Start at a
probability of 1.0 for a single node cluster and move down 0.25 per node
until a 5 node DC is reached then use the cross-data-center-gossip-probability
* Fix cross DC gossip selecting of oldest members
This used to select the members based on the sort order members in
Gossip (by address) rather than by upNumber
* Having maxSimultaneousRebalance > rebalanceThreshold in LeastShardAllocationStrategy caused shards "flapping" (deallocation of excessive shards followed by their immediate allocation on the same node)
When shutting down, we compliment the addition of a shutdown hook during startup with its removal. Doing so further ensures that no class loader is retained when unloading Akka in an OSGi style scenario.