Разрабатываю специальное приложение для компании на tornado уже 1.5 года, в начале приложение было маленькое и красивое - всем понравилось, после этого посыпались заказы на расширение и углубление. В настоящее время, приложение превратилось в “портал/платформу” - более 300 типов данных, более 10 приложений в этой платформе, расширение через плагины и хуки. При сохранении какого-нибудь объекта с ним могут поработать 5-15 плагинов (хуков).
Все работает шустро. Проблема вот в чем - это все асинхронное.
На данный момент бизнес логики 80%, и асинхронность тут мешает:
- Более сложный код, высокий порог входа, сложнее работать с ошибками.
- Неудобное использование try..catch, в итоге нет использования.
- Проблема использования синхронного кода.
- Сложнее отлаживать.
В итоге программисты тяжело “входят” в проект, он их “пугает” и медленно развивается.
Плюсы которые дает асинхронность не перекрывает минусы.
Сейчас задумываюсь о миграции (что не быстрое дело) на мульти-потоковый фреймворк, либо попробовать вынести бизнес логику отдельно, а tornado оставить “мордой”, но пока особых плюсов в этом не вижу.
В итоге если перейду на другой фреймворк, для торнадо останется только какие-то узкие вещи типа чата, работа с web-сокетами и т.п.
Если у кого есть комментарии или советы - прошу…