wawa, с чего вы это взяли? Consumer'ы так же stateless. К тому же, реализованы они не поверх потоков. Так же один процесс, с одним главным потоком, в котором работает один синхронный Consumer. В случае асинхронных, в главном потоке воркера крутится цикл событий, на который навешано один или более Consumer'ов.
wawa, коллега выше объясняет то же самое. Есть асинхронный сервер Daphne, обрабатывающий соединения и общающийся с асинхронным кодом Channel по асинхронному протоколу ASGI. Синхронные обработчики существуют для простоты разработчика. Они как черепаха в салоне самолёта: сама черепаха летать не умеет и проползёт 5 метров за пять минут, если смотреть на неё находясь в том же салоне, но если смотреть с земли, то черепаха летит со скоростью 700 км/ч.
wawa, если у вас будет 10 воркеров и воркер выполняет свою работу за 50 миллисекунд, то подключены к чату могут быть одновременно сотни или даже тысячи пользователей, способных отправлять до 20 сообщений в секунду без возникновения backpressure.
krembrule2016, потому что не стоит называть свои классы и перечисления так же, как классы из стандартной библиотеки. Переименуйте в CharacterType и проблема должна уйти.
Chekistchek, всё, что умеет PHP "из коробки" - это сохранять значения определённых переменных окружения в свои специальные переменные и выводить текст в стандартный поток вывода. Это умеет вообще любой язык. И это как раз необходимый минимум для разработки web-приложения.
Я ничего не могу сказать конкретно об этих технологиях, но за последние 20 лет видел как многие другие прекрасные технологии заглохли. Развитие технологии невозможно без её успешного выхода на рынок. А чтобы выйти на рынок, мало иметь в команде хороших инженеров, нужны ещё хорошие экономисты, маркетологи и талантливый руководитель во главе. Достаточно облажаться кому-то одному из них, и даже самые лучшие технологические решения канут в Лету.