...
Which thread should be responsible for waiting?
*Default to Common Pool, Allow User Overrides
By default, we will use a common threadpool (either one managed by Kafka, or by the JDK (like FJP.commonpool)). However, it will be possible for a user to override the pool.
Pros:
- Easy to implement
- Users have fine-grained control if they want, or they can relax and trust us
Cons:
- Breaking API change, if only for the user override.
User-provided Threadpool
Update the API so that the user provides a threadpool, in which we do the blocking.
...