Open
Description
Hi!
Given the rising popularity of reactive APIs (also the Flow API in Java 9), such initiative as OpenMessaging should provide the first-class APIs for the reactive world.
To define the "reactive":
- Standard Publisher/Subscriber API - should be compatible with http://www.reactive-streams.org, so that many existing reactive solutions can easily integrate (RxJava, Akka, Reactor, etc...)
- Push/pull model - at least on end-user API level
- Back-pressure awareness - clients should be able to request their demand and producers should respect it
- [?] Smart resources utilization - ThreadPool-ing, async, non-blocking API
I pre-checked some of the points I think already provided. So far
The proven beauty of reactive APIs is that you can easily convert them to pull/push/streaming APIs, but not the other way around.
That might serve a foundation for the underlying implementations, but it's important to have it as an API, not the detail of implementation.