Абсолютно все действия, требующие на выполнение времени, должны быть асинхронными, запускаемые в отдельных потоках. Как минимум это работа с базой данных, сетевыми запросами и даже файлами.
Проще - нужно чтобы сам обработчик работал не в одном потоке а в нескольких или даже процессах/серверах, т.е. запускай несколько обработчиков, а центральный, через который идет подключение, должен только перенаправлять запросы.