Задача
Разработать отказоустойчивый backend сервис для управления платным доступом к цифровому продукту. Пользователи взаимодействуют через Telegram-бота, который служит точкой входа.
Функциональные требования
Для пользователя:
- При регистрации каждому пользователю создается уникальная конфигурация подключения (индивидуальные ключи и параметры) ;
- Возможность активировать доступ на нескольких устройствах - конкретный лимит задается в рамках выбранного пользователем тарифа;
- Сервис отслеживает активные соединения пользователя в реальном времени и автоматически блокирует попытку превысить установленный лимит (например, если куплен доступ для 2 устройств, третье устройство будет отвергнуто) ;
- Автоматическое отключение доступа после истечения подписки - без дополнительных действий со стороны администратора.
Для администратора:
- Просмотр списка всех активных аккаунтов с их текущим статусом;
- Блокировка и продление доступа для любого пользователя в ручном режиме;
- Просмотр истории и статистики активных сессий (пики нагрузки, время подклдючения, количество отказов и т.п.) .
Технические требования
- Производительность: Поддержка от 1 до 10 000 одновременно подключенных пользователей;
- Масштабируемость: Горизонтальное масштабирование (возможность добавлять ноды) для увеличения емкости системы;
- Протоколы: Работа с TCP и UDP соединениями для различных типов трафика;
- Безопасность и управление: Централизованное управление пользовательскими ключами шифрования и доступом;
- Стабильность: Минимальные задержки и стабильность сервиса при высоких нагрузках
Ожидаемый результат
- Готовая архитектура решения (схема взаимодействия компонентов) ;
- Работающий backend, развернутый в среде (например, Docker);
- Чистое REST API для интеграции с Telegram-ботом (createUser, activateKey, getStatistics, blockUser, extendAccess, etc.);
- Инструкция по развертыванию сервиса (деплой) для сисадмина или devops-инженера.;