В целом, я убил все остальные фреймворки для тг ботов. Расходимся.
Главная темка для меня была наконец завести канал зависимостей как
R в Effect.ts чтобы из библиотечки можно было выйти действительно в станы фреймворков. Проблема была такая: все сервисы (db pool, http-клиент, i18n) приходилось пихать в сессию (а это персистируемое состояние) и в адаптере я откидывал эти поля и это по сути утекшая абстракция.
Теперь у
Context третий дженерик dependencies:
telega.new_for_polling_with_dependencies(
api_client:,
dependencies: Deps(db:, http:, i18n:),
)
И в любом хендлере можно достать зависимости из контекста. Ничего глобального, все покрыто типами, в тестах легко подменить что хочешь.
Дальше всё нанизалось само:
💜storage-слой под одним контрактом сразу с реализацией для postgres / sqlite / redis
💜завел telemetry span-событий на BEAM которые можно нацепить на PromEx/otel
💜telega_webapp + telega_i18n позволяет по кайфу делать фуллстак-приложения целиком на Gleam
💜graceful shutdown теперь без потери апдейтов от телеграмма с полноценным дрейном соединений для всех адаптеров и RAII подходом для зависимостей
💜авто-команды для роутера и поддержка переводов для всего этого
Мне лично кажется что я довел проект до отличного состояния и теперь точно дальше только полишинг. Тч ставим звездочки и пробуем