I'd definitely go on a Reactive-Streams path (although I don't know what Apache Ignite does), however, there seems to be a small confusion around RS. RS is a set of 4 interfaces and practically unusable on its own. One needs a library built around it such as Project Reactor, Akka Streams and RxJava 2.0. Such library, likely, will also slip into the API itself due to its usefulness.
For example, the following API is inconvenient to use but is definitely cutting-edge: Publisher<Data> getData(); but you can only subscribe to it in its plain form or wrap it with one of the libraries: Observable.fromPublisher(getData()).map().filter().group()... I'm not sure about the others, but RxJava 2.0 Observable (which later may be renamed to Flowable) implement Publisher directly, therefore, the following getData() may return an RxJava Observable and still be consumable via Reactor or Akka (after wrapping/fluent-conversion, of course): getData().to(Streams::from).dispatchOn(...) Although I'm pretty confident that RxJava 2.0 works right now, it is still considered alpha and based on past experience with its gatekeepers, it may take 6-12 months until an official release comes out. -- View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Brainstorming-about-Reactive-Streams-tp3346p3422.html Sent from the Apache Ignite Developers mailing list archive at Nabble.com.