Skip to content
a1unade edited this page Jul 23, 2025 · 4 revisions

NotifyHub — Чат-бот-регламентатор для напоминаний

NotifyHub — это Telegram-чат-бот, разработанный в рамках производственной практики в компании БАРС ГРУП, предназначенный для своевременного напоминания пользователю о необходимости выполнения регламентных операций.

Возможности:

  • Создание и управление напоминаниями

  • Поддержка периодических уведомлений (день/неделя/месяц)

  • Асинхронная обработка задач с использованием Kafka

  • Масштабируемая микросервисная архитектура:

    • Web API для управления уведомлениями

    • Notification Service для отправки

    • Outbox Processor для планирования и очередей

    • API Gateway для маршрутизации

    • Telegram Bot в роли клиента

Техдолг: (что хотелось реализовать, но не хватило времени)

  • Авторизация для API (отправка запросов с помощью access-token в headers у запросов)

  • Тестирование и сбор покрытия тестов

  • Kubernetes

  • Более глубокая настройка логирования и сбор метрик (graylog, graphana)

  • Кэширование запросов в Redis

  • Деплой

  • Автоматическое обновление библиотек (не знаю насколько это реализуемо, но с самописными библиотеками достаточно полезно)

  • Балансировщик нагрузки для API Gateway

  • Retry-политика для NotificationService, в случае, если отправка сообщения не удалась (что-то вроде отдельной таблицы на retry и обходом ее через BackgroundService), сейчас в сервисе такой политики нет, поэтому гарантии 100 процентной доставки тоже нет

  • Возможность отправки уведомления на почту (задел под это есть, email можно передавать при регистрации и обновлении пользователя, так же сервис уведомлений получает почту пользователя и написан EmailService, но самой обработки такого случая нет)

Технологии:

  • .NET 8

  • PostgreSQL

  • Apache Kafka

  • Docker + Docker Compose

  • GitHub Actions (CI/CD)

Документация для разработчиков

Clone this wiki locally