Sobes.tech
Middle+

Praktinė užduotis: Vieninga pranešimų platforma (Notification Platform) Kontekstas Įmonėje yra 3 išsklaidyti sistemos, kurios siunčia pranešimus naudotojams: 1. CRM — siunčia el. laiškus ir push pranešimus apie užsakymus. 2. Support Portal — siunčia žinutes apie bilietus per Telegram botą. 3. Saugumo sistema — generuoja SMS pranešimus 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 vieno SLA, metrikų 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 pristatymo), * leidžia mastelio keitimą ir kanalų plėtrą ateityje. Kandidato užduotis 1. Apibrėžti sistemos funkcinius reikalavimus. 2. Aprašyti nefunkcinius reikalavimus (patikimumas, našumas, klaidų tvarkymas). 3. Sukurti kontekstinį diagramą (C4 lygis 2). 4. Pridėti 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.
  • Обработка ошибок: логирование ошибок, оповещения о сбоях, fallback-каналы.
  • Безопасность: аутентификация источников событий, защита данных пользователей.
  • Масштабируемость: горизонтальное масштабирование компонентов.

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

  • Внешние системы: CRM, Support Portal, Security System.
  • Notification Platform:
    • API Gateway для приёма событий.
    • Event Processor для маршрутизации.
    • Template Manager для шаблонов.
    • Notification Dispatcher для отправки по каналам.
    • Logging & Monitoring.
    • User Preferences Service.

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

  1. CRM отправляет событие уведомления в Notification Platform через API.
  2. API Gateway принимает событие и передаёт его Event Processor.
  3. Event Processor определяет канал (например, email) и выбирает шаблон из Template Manager.
  4. Формируется сообщение и передаётся Notification Dispatcher.
  5. Notification Dispatcher отправляет email через Email Service.
  6. Статус отправки логируется в Logging & Monitoring.
  7. Notification Platform возвращает статус CRM.

Такой подход обеспечит централизованное управление уведомлениями, улучшит качество доставки и упростит масштабирование системы.