Skip to content

Бизнес-требования к чату #9

@oveeernight

Description

@oveeernight

Бизнес-требования к Chat Service

Обзор

Служба чата предоставляет возможности обмена сообщениями в реальном времени для страховых агентов. Она обрабатывает пользовательские сообщения через SignalR и обрабатывает внешние события от других микросервисов.

Функциональные требования

1. Аутентификация и авторизация пользователей

  • Для доступа к функциям чата пользователи должны пройти аутентификацию с помощью JWT токенов
  • Только авторизованные пользователи могут отправлять сообщения и получать уведомления
  • Информация о личности пользователя и его аватар извлекается из JWT токена

2. Обмен сообщениями в реальном времени

2.1 Отправка сообщений

  • Любой авторизованный пользователь может отправить сообщение всем участникам чата
  • Сообщения рассылаются всем подключенным клиентам
  • Каждое сообщение содержит информацию об отправителе (логин и аватар)

2.2 События подключения

  • При подключении нового пользователя другие участники чата получают уведомление
  • При отключении пользователя другие участники чата получают уведомление

3. Обработка внешних событий

3.1 События создания полисов

  • Сервис отслеживает события PolicyCreated от Полисного Сервиса
  • При создании полиса событие обрабатывается и записывается в лог
  • На основе событий создания полисов могут отправляться уведомления

4. Управление уведомлениями

4.1 Системные уведомления

  • Администраторы могут отправлять системные уведомления через API
  • Уведомления доставляются всем подключенным клиентам чата
  • Используется паттерн CQRS с MediatR для обработки команд

Нефункциональные требования

1. Безопасность

  • Вся коммуникация должна быть защищена с помощью JWT аутентификации
  • Политики CORS должны ограничивать доступ только доверенным источникам
  • Конфиденциальность пользовательских данных должна соблюдаться

2. Производительность

  • Доставка сообщений должна происходить почти в режиме реального времени
  • Сервис должен эффективно обрабатывать множественные одновременные подключения
  • Обработка событий не должна блокировать основной поток выполнения

3. Надежность

  • Сервис должен корректно обрабатывать ошибки соединения
  • Ошибочные ситуации должны быть правильно записаны в лог
  • При ошибках обработки событий должна осуществляться повторная попытка или запись в лог

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions