I'll look at reactor, but generally I have my doubts; generally, it is an ongoing battle between latency and throughput.

Lately, I've been looking into ways of making SerializedObserver perform better in both single and multi-threaded use, and netty's MPSC queue seems to be a good starting point. Note that SO is not strictly MPSC because one the producer becomes the consumer for the rest of the bunch.