RpcCallHandler is dispatched on the IO thread
The RpcCallHandler is not assigned a thread pool, which means only a single request can be handled concurrently. This is a show stopper for high throughput systems.
To process the request asynchronously, use the addAfter overload that takes an EventExecutorGroup:
https://netty.io/4.0/api/io/netty/channel/ChannelPipeline.html#addAfter-io.netty.util.concurrent.EventExecutorGroup-java.lang.String-java.lang.String-io.netty.channel.ChannelHandler-
Hmm, I may be wrong here. It's possible this will only block that specific connection's thread, in which case it's ok
We can discuss potential ways to optimize the performance of the java plugin runner.