Sobes.tech
Middle+

Praktische Aufgabe: Einheitliche Benachrichtigungsplattform (Notification Platform) Kontext In der Firma gibt es 3 verstreute Systeme, die Benachrichtigungen an die Nutzer senden: 1. CRM — sendet E-Mails und Push-Benachrichtigungen zu Bestellungen. 2. Support-Portal — sendet Nachrichten zu Tickets im Telegram-Bot. 3. Sicherheitssystem — generiert SMS-Benachrichtigungen bei verdächtigen Zugriffen. Jedes System implementiert seine eigene Logik: * eigene Vorlagen, hardcodierte Empfänger; * keine zentrale Benachrichtigungs-Historie; * Nutzer beschweren sich über Duplikate und Verzögerungen; * kein einheitliches SLA, keine Metriken und kein Kontrollzentrum. Ziel Entwerfen Sie eine neue Notification Platform, die: * Ereignisse aus verschiedenen Quellen (CRM, Support, Security) aggregiert, * sie nach Typ und Kanal (E-Mail, SMS, Telegram, Push) routet, * einheitliche Vorlagen, Logging und Beobachtbarkeit gewährleistet, * SLA (p95 ≤ 3 Sek. für die Zustellung) unterstützt, * Skalierung und Erweiterung der Kanäle in Zukunft ermöglicht. Aufgabe für den Kandidaten 1. Definieren Sie die funktionalen Anforderungen des Systems. 2. Beschreiben Sie die nicht-funktionalen Anforderungen (Zuverlässigkeit, Leistung, Fehlerbehandlung). 3. Erstellen Sie ein Kontextdiagramm (C4 Level 2). 4. Fügen Sie ein Sequenzdiagramm hinzu. Zum Beispiel, das Senden einer Nachricht aus CRM.

sobes.tech KI

Antwort von 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.

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