Sobes.tech
Middle+

Compito pratico: Piattaforma di notifiche unificata (Notification Platform) Contesto In azienda esistono 3 sistemi dispersi che inviano notifiche agli utenti: 1. CRM — invia email e notifiche push sugli ordini. 2. Portale Supporto — invia messaggi sui ticket tramite bot Telegram. 3. Sistema di Sicurezza — genera notifiche SMS su accessi sospetti. Ogni sistema implementa la propria logica: * modelli propri, destinatari hardcoded; * nessuna storia centralizzata delle notifiche; * gli utenti si lamentano di duplicati e ritardi; * nessun SLA, metriche o centro di controllo unificato. Obiettivo Progettare una nuova Notification Platform che: * aggrega eventi da diverse fonti (CRM, Support, Security), * li instrada per tipo e canale (email, SMS, Telegram, push), * garantisce uniformità nei modelli, logging e osservabilità, * supporta SLA (p95 ≤ 3 sec per consegna), * permette scalabilità e ampliamento dei canali in futuro. Compito per il candidato 1. Definire i requisiti funzionali del sistema. 2. Descrivere i requisiti non funzionali (affidabilità, prestazioni, gestione degli errori). 3. Creare un diagramma di contesto (C4 Livello 2). 4. Aggiungere uno schema di diagramma di sequenza. Ad esempio, invio di un messaggio da parte di CRM.

sobes.tech AI

Risposta dell'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.

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