I'm stretching the legs on our new async framework Reactor [1] and I created a 
quite small helper class to enable efficient async operation of the official 
Java client. I'm calling it Riaktor (even though there's apparently an old Ruby 
gem of the same name that hasn't been updated in several years).

https://github.com/jbrisbin/riaktor

Since it uses Reactor, it also has OOTB Groovy love, which includes using 
Closures as callbacks, etc… There's basically no documentation yet; only what's 
in the tests. But if you're brave enough to try out something completely new, I 
would love to get your feedback! :)

I've load-tested this to over 150,000 ops/sec using 2 threads via 
Disruptor-based RingBufferDispatchers. Reactor itself can do 15M ops/sec on my 
three-year-old MacBook Pro so the bottleneck is going to be the network and 
your Riak cluster. But assuming you've got the bandwidth to handle it, Riaktor 
can push to (and pull from) Riak very efficiently.

Once you've got some data in the client, the idea is that you'll want to 
continue integrating with Reactor's async tools by doing compositions (map, 
filter, reduce, etc… a la RxJava Observable). That's why Riaktor returns a 
Promise for almost everything.

I'd be interested to get your feedback as it would directly feed back into 
better Reactor features.

[1] - https://github.com/reactor/reactor/  


Thanks!

Jon Brisbin
Twitter: @JonBrisbin
http://about.me/jonbrisbin



_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to