Currently, we store an ActorRef of the TaskManager into an Instance object. This ActorRef is used from within Executions to interact with the TaskManager. This is not a nice abstraction since it does not hide implementation details.
Since we need to add a leader session ID to messages sent by the Executions in order to support high availability, we would need to make the leader session ID available to the Execution. A better solution seems to be to replace the direct ActorRef interaction with an instance gateway abstraction which encapsulates the communication logic. Having such an abstraction, it will be easy to decorate messages transparently with a leader session ID. Therefore, I propose to refactor the current Instance communication and to introduce an InstanceGateway abstraction.