In case of ClusterService over ScaleCube (see ScaleCubeClusterServiceFactory
), messages are passed down to the ClusterService via the Project Reactor‘s Sink which enforces a strict order of message handling: a new message can’t be received by ClusterService until a previous message is handled (see message handling). Message handling can also be offloaded to another thread: Note that in this case the network message would be considered handled before it is processed
by another thread.
ScaleCube uses sc-cluster-X
(where X is an address of the node, e.g. localhost-3344
) scheduler for the failure detector, gossip protocol, metadata store and the membership protocol.
Message handlers are called in the order they were added.
Message is considered handled after all the message handlers have been invoked.
Two nodes, Alice and Bob. User is sending a message from Alice to Bob within any thread.