Middle+
Практическа задача: Обединена платформа за известия (Notification Platform) Контекст В компанията съществуват 3 разпръснати системи, които изпращат известия на потребителите: 1. CRM — изпраща имейли и push известия за поръчки. 2. Support портал — изпраща съобщения за тикети чрез Telegram бот. 3. Система за сигурност — генерира SMS известия за съмнителни входове. Всяка система реализира своя собствена логика: * собствени шаблони, хардкодирани получатели; * няма централизирана история на известията; * потребителите се оплакват от дублиране и забавяне; * няма единен SLA, метрики или център за управление. Цел Да се проектира нова Notification Platform, която: * агрегира събития от различни източници (CRM, Support, Security); * ги маршрутизира по тип и канал (email, SMS, Telegram, push); * осигурява еднородност на шаблоните, логването и наблюдаемостта, * поддържа SLA (p95 ≤ 3 сек за доставка), * позволява мащабиране и разширяване на каналите в бъдеще. Задача за кандидата 1. Определете функционалните изисквания на системата. 2. Опишете нефункционалните изисквания (надеждност, производителност, обработка на грешки). 3. Създайте контекстна диаграма (C4 Ниво 2). 4. Добавете схема на секвенционна диаграма. Например, изпращане на съобщение от CRM.
sobes.tech AI
Отговор от 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