ktor has 3 dispatchers: connections, worker, and user. User is where your code runs and you can block it if you have to, it doesn’t block event processing. This might have performance impact, though mostly on multiprocessor servers, and when processing is really small, i.e. response with predefined text. For this case we introduced an option to share worker & user dispatchers (netty only for now).