Sobes.tech
Middle+

Praktinė užduotis: Vieninga pranešimų platforma (Notification Platform) Kontekstas Įmonėje yra 3 išsibarsčiusios sistemos, kurios siunčia pranešimus naudotojams: 1. CRM — siunčia el. laiškus ir push pranešimus apie užsakymus. 2. Support portalas — siunčia žinutes apie bilietus per Telegram botą. 3. Saugumo sistema — generuoja SMS įspėjimus apie įtartinus prisijungimus. Kiekviena sistema įgyvendina savo logiką: * savo šablonus, hardcoded gavėjus; * nėra centralizuotos pranešimų istorijos; * naudotojai skundžiasi dėl dubliavimosi ir vėlavimų; * nėra vieningo SLA, metrų ar valdymo centro. Tikslas Sukurti naują Notification Platform, kuri: * kaupia įvykius iš skirtingų šaltinių (CRM, Support, Security); * juos maršrutizuoja pagal tipą ir kanalą (el. paštas, SMS, Telegram, push); * užtikrina šablonų vienodumą, registravimą ir stebėseną, * palaiko SLA (p95 ≤ 3 sekundės pristatymui), * leidžia mastelio keitimą ir kanalų plėtimą ateityje. Kandidato užduotis 1. Apibrėžkite sistemos funkcinius reikalavimus. 2. Aprašykite nefunkcinius reikalavimus (patikimumas, našumas, klaidų tvarkymas). 3. Sukurkite kontekstinį diagramą (C4 lygis 2). 4. Pridėkite sekvencijos diagramos schemą. Pavyzdžiui, pranešimo siuntimą iš CRM.

sobes.tech AI

Atsakymas iš AI

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

  • Приём событий из CRM, Support Portal и Security System через API или очередь сообщений.
  • Маршрутизация уведомлений по типу и каналу (email, SMS, Telegram, push).
  • Централизованное управление шаблонами уведомлений с возможностью редактирования.
  • Логирование всех отправленных уведомлений с историей и статусами доставки.
  • Метрики и мониторинг SLA (например, p95 ≤ 3 секунды на доставку).
  • Поддержка масштабирования и добавления новых каналов уведомлений.
  • Управление подписками и предпочтениями пользователей.

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

  • Надёжность: отказоустойчивость, повторные попытки отправки при ошибках.
  • Производительность: обработка и доставка уведомлений в пределах SLA.
  • Обработка ошибок: централизованное логирование ошибок, алерты при сбоях.
  • Безопасность: аутентификация источников событий, защита данных пользователей.
  • Масштабируемость: горизонтальное масштабирование компонентов.

Контекстная диаграмма (C4 Level 2):

  • Внешние системы: CRM, Support Portal, Security System.
  • Notification Platform:
    • API Gateway / Event Receiver
    • Event Processor / Router
    • Template Service
    • Notification Sender (Email, SMS, Telegram, Push)
    • Logging & Monitoring
    • User Preferences Service

Взаимодействия:

  • Внешние системы отправляют события в Notification Platform.
  • Платформа обрабатывает, маршрутизирует и отправляет уведомления.
  • Логирует результаты и собирает метрики.

Sequence-диаграмма (пример отправки сообщения из CRM):

CRM -> Notification Platform: Отправка события заказа
Notification Platform -> Template Service: Получить шаблон email и push
Notification Platform -> Notification Sender (Email): Отправить email
Notification Platform -> Notification Sender (Push): Отправить push
Notification Sender -> Notification Platform: Статус доставки
Notification Platform -> Logging Service: Записать историю уведомления
Notification Platform -> Monitoring: Обновить метрики SLA