Sobes.tech
Middle+

Tarea práctica: Plataforma de notificaciones unificada (Notification Platform) Contexto En la empresa existen 3 sistemas dispersos que envían notificaciones a los usuarios: 1. CRM — envía correos electrónicos y notificaciones push sobre pedidos. 2. Portal de soporte — envía mensajes sobre tickets en el bot de Telegram. 3. Sistema de seguridad — genera alertas SMS sobre accesos sospechosos. Cada sistema implementa su propia lógica: * plantillas propias, destinatarios codificados en hardcode; * sin historia centralizada de notificaciones; * los usuarios se quejan de duplicados y retrasos; * sin SLA, métricas ni centro de control unificado. Objetivo Diseñar una nueva Notification Platform que: * agregue eventos de diferentes fuentes (CRM, Support, Security), * los enrute por tipo y canal (email, SMS, Telegram, push), * garantice uniformidad en plantillas, registro y observabilidad, * soporte SLA (p95 ≤ 3 seg para la entrega), * permita escalabilidad y expansión de canales en el futuro. Tarea para el candidato 1. Defina los requisitos funcionales del sistema. 2. Describa los requisitos no funcionales (fiabilidad, rendimiento, manejo de errores). 3. Elabore un diagrama de contexto (C4 Nivel 2). 4. Añada un esquema de diagrama de secuencia. Por ejemplo, envío de un mensaje desde CRM.

sobes.tech AI

Respuesta de la IA

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

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

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