As part of refactoring of the cluster management, we can introduce a new RPC abstraction on top of our Akka-based distributed coordination.
It should address the following issues:
- Add type safety to the sender and receiver of messages. We want proper types methods to be called, rather than haveing generic message types and pattern matching everywhere. This is similar to typed actors.
- Make the message receivers testable without involving actors, i.e. the methods should be callable directly. When used with other component, the receiver will be wrapped in an actor that calls the methods based on received messages.
- We want to keep the paradigm of single-threaded execution per "actor"
There is some basic code layout in the following branch and commit: