aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johannes Utzig <>
Subject Re: Aries RSA - support for long running calls
Date Fri, 22 Jul 2016 14:25:01 GMT
Hi Christian,

I have not stumbled upon this yet, but on first glance it looks very
similar to what you can do with a CompletableFuture:

testService.helloAsync().thenAccept(result -> System.out.println(result));

Looks like the main difference is that Observable allows multiple items
that become available over time.

But part of my change was a bit of a cleanup in the handling of the
InvocationStrategy which should make it easier to add support for
additional invocation strategies (like an Observable based).
As for the initial implementation I would prefer to keep it free of
additional mandatory dependencies.


2016-07-22 15:38 GMT+02:00 Christian Schneider <>:

> Hi Johannes,
> welcome to the Aries community and thanks for the pull requests and issues
> you already provided.
> Long running calls could make a lot of sense but I am not sure if Future
> is still the way to go.
> It seems people are using Observable now (
> to be able to use
> rxjava (
> So I think it might make sense to directly provide this. I am not
> experienced in rxjava but maybe we got some people here who know that
> better.
> Christian
> On 22.07.2016 15:00, Johannes Utzig wrote:
>> Hi,
>> as a quick introduction, my name is Johannes Utzig and I work for the
>> We have been involved with aries-rsa since the beginning and maintain a
>> fork of it on github. We are primarily interested in the fastbin transport
>> and I usually try to create pull requests for enhancements/fixes we're
>> doing that might be useful to have upstream.
>> I am currently working on adding support for long running remote calls
>> (several minutes/hours) to fastbin.
>> If possible, I would like to contribute that feature upstream if there is
>> an interest for it.
>> The idea is to allow Future and CompletableFuture as return values of
>> remote methods.
>> If such a return value is detected, the invocation strategy switches to
>> async and the client receives an implementation of (Completable)Future
>> that
>> will be filled as soon as the call result becomes available.
>> Example Provider:
>>          public CompletableFuture<String> helloAsync() {
>>              return CompletableFuture.supplyAsync(() -> "Hello");
>>          }
>> Example Consumer:
>>        exampleService.helloAsync().get(5, TimeUnit.MINUTES));
>> A few questions about that:
>> -Does someone maybe have a better idea on how to support long
>> running/async
>> calls?
>> -would you be interested in that contribution?
>> -My implementation requires java 8 features like CompletableFuture but rsa
>> is currently building with 1.7. Would it be OK to move to java 8 as a
>> target version?
>> Best regards,
>> Johannes
> --
> Christian Schneider
> Open Source Architect

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message