Sobes.tech
Middle+

Exercice pratique : Plateforme de notifications unifiée (Notification Platform) Contexte Dans l'entreprise, il existe 3 systèmes dispersés qui envoient des notifications aux utilisateurs : 1. CRM — envoie des e-mails et des notifications push concernant les commandes. 2. Portail Support — envoie des messages sur les tickets via le bot Telegram. 3. Système de sécurité — génère des alertes SMS sur les connexions suspectes. Chaque système implémente sa propre logique : * modèles propres, destinataires codés en dur; * pas d'historique centralisé des notifications; * les utilisateurs se plaignent de doublons et de retards; * pas de SLA, métriques ni centre de contrôle unifié. Objectif Concevoir une nouvelle Notification Platform qui : * agrège les événements de différentes sources (CRM, Support, Security); * les routent par type et canal (email, SMS, Telegram, push); * assure l'uniformité des modèles, la journalisation et la observabilité, * supporte le SLA (p95 ≤ 3 sec pour la livraison), * permet la montée en charge et l'expansion des canaux à l'avenir. Tâche pour le candidat 1. Définissez les exigences fonctionnelles du système. 2. Décrivez les exigences non fonctionnelles (fiabilité, performance, gestion des erreurs). 3. Élaborer un diagramme de contexte (C4 Niveau 2). 4. Ajoutez un schéma de diagramme de séquence. Par exemple, l'envoi d'un message depuis CRM.

sobes.tech IA

Réponse de l'IA

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

  • Приём событий из 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