Корбот - это модульный low-code / no-code движок для телеграм-бота. Корбот позволяет делать несложных ботов-визитки, замысловатые магазины и гигантские многокомпонентные системы с веб-сервисами, API и фронтендом. Корбот - это серверное контейнеризованное приложение, которое позволяет расширять свои функции сторонними модулями. Мы в Синвеб создали не только движок, но и написали уже десятки модулей и делимся приёмами, как их создавать, на официальном сайте Корбота.
Управляется бот на Корботе с помощью элементарной админки прямо внутри мессенджера и электронных таблиц, которыми хоть немного владеет почти каждый, а большего и не требуется. Это смелое решение в плане UX, однако оно получилось экстремально жизнеспособным - работать с таблицами неподготовленным конечным пользователям оказалось легко и ненапряжно, многие аспекты вышли интуитивно понятными, а для других хватило примечаний в самих таблицах и простых инструкций.
Я спроектировал Корбот на Python с использованием библиотеки pyTelegramBotApi. Я решил взять эту библиотеку, чтобы вопросами обёртки API и моделей данных сущностей Telegram занималось сообщество энтузиастов, а не моя команда. Это не спасло нас от множества других задач, для которых, впрочем, Корбот и оказался максимально полезен. Я имею в виду лимиты API Telegram, реальную, а не формальную асинхронность и модель вызовов API с учётом приоритетов. Благодаря этим деталям даже при высокой интенсивности отправки сообщений от бота пользователям (например, рассылка десятков сообщений в секунду) клиенты получают приемлемую отзывчивость системы и не ждут, пока их запрос наконец обработается и бот соизволит прислать ответ.
В этом проекте я решил использовать MongoDB. Это означает, что каждая установка разворачивает экземпляр этой СУБД. Столь экзотический выбор следует из главного преимущества этой технологии: “данные = схема”. MongoDB позволяет не фиксировать схему данных и работать с полностью динамическими записями. Это выглядит диковато с точки зрения традиционных enterprise-проектов, однако именно это позволило поставить эффективный процесс обновления работающих экземпляров, в том числе клиентских, без миграций баз данных и конфликтов схем, которые неизбежно происходят в реляционных базах данных при таких сценариях. Как приятный бонус - это даёт возможность безудержно расширять и переделывать фичи и уделять обратной совместимости самый минимум ресурсов - после обновлений всё просто берёт и работает.
Корбот работает на Docker Compose и поставляется с автоматическим инсталлятором, который позволяет установить экземпляр Корбота даже тому, который впервые видит серверную ОС и никогда раньше не писал команды в терминале. Корбот успешно ставится и работает на самой минимальной VPS с 1 ГБ ОП и 1 ядром ЦП, но, если нагрузка предстоит высокая, этого вряд ли хватит.
Я создал этот продукт вместе с командой, мы его разработали на основе моей концепции и архитекруты. Это мой первый продукт с коммерческой лицензией, которую может приобрести любой желающий по фиксированной, абсолютно демократичной цене.
Подробнее об этом продукте мы с коллегами рассказываем на сайте - пишем, что Корбот умеет, как его установить, запустить и настроить.