I just wanted to say "thanks" for making this proposal! I'm also interested in
performing nonblocking I/O (multiplexing threads/reactive programming) within
Flink operators so that we can, for example, communicate with external web
services with Netty/RxNetty without blocking an entire Flink slot (aka a
thread) while we wait for the operation to complete. It looks like your FLIP
will enable that use case.
I'm not sure whether it will be possible to share one Netty EventLoopGroup (or
the equivalent for any other non-blocking framework, connection pool, etc.)
among multiple slots in a single JVM though. Flink supports open/close
operation on a RichFunction, but that's on a per-slot basis. I don't know of a
way to open/close objects on a per-job-JVM basis. But I suppose that's an issue
that should be discussed and resolved separately.