You cannot have two simultaneous requests coming in simultaneously. So there will always be in one request in flight. We make a blocking call using the thread pool executor. When we hit the timeout (or we have data for all metrics), we return the response (either complete or partial) to the user. Then netty gives us one more request to handle.