As mentioned in #3 we can consider running listeners in a threadpool as it is not part of the core logic.