generated from hexlet-components/readme-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Сервис: Publishing Worker
В качестве пилотной интеграции выбран Telegram. Для упрощения первоначальной реализации, токен для доступа к Telegram API будет временно храниться в конфигурации самого воркера.
Цель: Создать асинхронный воркер, который обрабатывает события из Kafka, выполняет публикацию в Telegram, используя локально сохраненный токен, и отправляет событие с результатом обратно в систему.
Критерии приемки (Acceptance Criteria):
- Подписка на топик Kafka: Воркер успешно подписывается на топик publications.pending и потребляет из него сообщения.
- Токен доступа для Telegram-бота и Chat ID целевого канала/группы получаются напрямую из конфигурации Publishing Worker (например, из переменных окружения).
- Реализован клиент для взаимодействия с Telegram Bot API (например, с помощью github.com/go-telegram-bot-api/telegram-bot-api/v5).
- Воркер должен уметь отправлять текстовые сообщения (sendMessage). Пока только текст.
- При сбоях в работе с Telegram API (например, сетевые ошибки 429 Too Many Requests, 5xx ошибки сервера) воркер реализует логику повторных попыток с задержкой.
- После завершения попытки публикации (успешной или окончательно проваленной) воркер формирует новое событие о результате.
- Обязательные поля: content_id, social_account_id, status ("success" или "failed"), published_at (если успешно), external_post_id (ID сообщения в Telegram), error_details (если ошибка).
- Сформированное событие о результате отправляется в топик publications.results.
Metadata
Metadata
Assignees
Labels
No labels