Middle+
Praktische Aufgabe: Einheitliche Benachrichtigungsplattform (Notification Platform) Kontext In dem Unternehmen 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 über verdächtige Zugriffe. 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.
- Обработка ошибок: централизованное логирование ошибок, алерты при сбоях.
- Безопасность: аутентификация источников событий, защита данных пользователей.
- Масштабируемость: горизонтальное масштабирование компонентов.
Контекстная диаграмма (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