У платформы две внешние интеграции, которые включаются фичами telegram и chatgpt. Обе работают через одну и ту же шину событий на RabbitMQ.
Telegram-бот делает три вещи. Во-первых, он публикует новые посты в канал — берёт заголовок, превью и ссылку. Во-вторых, он работает как способ авторизации: пользователь логинится через Telegram-виджет, и сервер проверяет подпись бота. В-третьих, он умеет рассылать персональные уведомления тем, кто подписался.
Интеграция с OpenAI используется аккуратно — только в редакторе. Я не доверяю генерации полных постов, но проверка опечаток, переформулировка абзаца и подбор заголовка работают отлично. Запросы идут на сервер, который добавляет системный промпт и не отдаёт ключ клиенту.
Если интеграции не нужны, обе фичи отключаются на этапе сборки. Cargo соберёт сервер без зависимостей от teloxide и openai-api, и финальный бинарник станет ощутимо меньше.