the rxjava approach to streams is quite similar to rxjava, with one crucial difference - there is a callback on the put!
equivalent op, but they don't really make use of it
my code is still nascent, but i think it is the case that the manifold approach to backpressure (returning a promise from put!
which resolve when the op completes) is more powerful than the rxjava pull approach... it was quite easy to implement the pull approach using the manifold approach
here where i am: https://github.com/mccraigmccraig/laters/blob/master/src/laters/concurrency/stream/read_write_stream.cljc
i borrowed from the rxjava approach of implementing a buffer which takes care of most of the detail of backpressure, then using that to implement the stream
still a way to go though... the current impl only accepts a single downstream handler