* DaemonMsgCreate is not a system message. We send it over the control
stream because remote deployment process depends on message ordering
for DaemonMsgCreate and Watch messages. That is all good.
* We also send DaemonMsgCreate over the ordinary message stream (all
outbound lanes) so that the first ordinary message that is sent to
the ref does not arrive before the actor is created. This is not needed,
since the retried resolve in the Decoder will take care of that anyway.
* Inbound lanes were not covered, but not needed.
* Then the deduplication of DaemonMsgCreate messages in RemoteSystemDaemon
is not needed.
* Added some more tests for these things.
* describe lanes in reference docs
* Pass HandshakeReq in all inbound lanes, #23527
The HandshakeReq message must be passed in each inbound lane to
ensure that it arrives before any application message. Otherwise there is a risk
that an application message arrives in the InboundHandshake stage before the
handshake is completed and then it would be dropped.
* mima
* 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