On 01.08.2016 12:05, Johannes Utzig wrote:
2016-08-01 10:50 GMT+02:00 Christian Schneider <[email protected]>:
Do you think we can even define and implement this in a transport agnostic
way or do we need to support async per transport?
Christian
I don't see how this could be done with the current architecture as the
whole invocation and communication part is the sole responsibility of the
distribution provider.
To support async calls the distribution provider needs to detect the
arguments/return values and replace Future/Promise and so on with custom
instances. All the RSA currently sees on the client side is a proxy object
and then it's already too late.
On the server side, the RSA doesn't even see that a remote invocation took
place so it cannot participate in the request.
We might be able to make it easier for new transports with abstract base
classes or so, but with the current interface I don't think it can be done
transparantly for the transport.
Johannes
I think you are right. I am also not sure if handling async on the rsa
side is really what we need. Whenver possible I think it is better to
handle the asynchronicy on the transport level so
we ideally do not block any threads.
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com