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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions