Middle+
Praktische taak: Geïntegreerd notificatieplatform (Notification Platform) Context In het bedrijf zijn er 3 verspreide systemen die notificaties naar gebruikers sturen: 1. CRM — verstuurt e-mails en pushmeldingen over bestellingen. 2. Support Portal — verstuurt berichten over tickets via de Telegram-bot. 3. Security System — genereert SMS-meldingen over verdachte inlogpogingen. Elk systeem implementeert zijn eigen logica: * eigen sjablonen, hardcoded ontvangers; * geen gecentraliseerde notificatiegeschiedenis; * gebruikers klagen over duplicaten en vertragingen; * geen uniforme SLA, metrics of control center. Doel Ontwerp een nieuwe Notification Platform die: * gebeurtenissen uit verschillende bronnen (CRM, Support, Security) aggregeert, * ze routeert op type en kanaal (email, SMS, Telegram, push), * uniformiteit in sjablonen, logging en observability garandeert, * SLA ondersteunt (p95 ≤ 3 sec voor levering), * schaalbaarheid en uitbreiding van kanalen in de toekomst mogelijk maakt. Taak voor de kandidaat 1. Definieer de functionele vereisten van het systeem. 2. Beschrijf de niet-functionele vereisten (betrouwbaarheid, prestaties, foutafhandeling). 3. Maak een contextdiagram (C4 Niveau 2). 4. Voeg een sequentiediagram toe. Bijvoorbeeld, het versturen van een bericht vanuit CRM.
sobes.tech AI
Antwoord van 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):
- CRM отправляет событие уведомления в Notification Platform через API.
- API Gateway принимает событие и передаёт его Event Processor.
- Event Processor определяет канал (например, email) и выбирает шаблон из Template Manager.
- Формируется сообщение и передаётся Notification Dispatcher.
- Notification Dispatcher отправляет email через Email Service.
- Статус отправки логируется в Logging & Monitoring.
- Notification Platform возвращает статус CRM.
Такой подход обеспечит централизованное управление уведомлениями, улучшит качество доставки и упростит масштабирование системы.