Description
I suggest expanding this initiative beyond the JVM since most of us need our data streams and systems to interact over network boundaries with other languages.
Thus, it seems it's actually more important to define the protocol and contract and then allow each language platform to define the interfaces that meet it.
Perhaps an approach to this is breaking out into multiple sub projects such as:
- /reactive-streams/specification (purely for contract definition)
- /reactive-streams/reactive-streams-jvm
- /reactive-streams/reactive-streams-dotnet
- /reactive-streams/reactive-streams-javascript
- /reactive-streams/reactive-streams-websockets
- /reactive-streams/reactive-streams-tcp
- /reactive-streams/reactive-streams-udp
Even if the focus in the short-term remains on the JVM interface design, we would gain a lot by including communities such as Javascript/Node.js, Erlang, .Net, banking and financial trading (who have been doing high performance messaging for decades). It would also make the model far more useful as we could then consume a reactive stream from Javascript in a browser via WebSockets to powered by Netty or Node.js receiving data from Rx/Akka/Reactor/whatever and it would "just work".