Sobes.tech
Middle+

Zadanie praktyczne: Zintegrowana platforma powiadomień (Notification Platform) Kontekst W firmie istnieją 3 rozproszone systemy, które wysyłają powiadomienia do użytkowników: 1. CRM — wysyła e-maile i powiadomienia push o zamówieniach. 2. Portal wsparcia — wysyła wiadomości o zgłoszeniach do bota Telegram. 3. System bezpieczeństwa — generuje powiadomienia SMS o podejrzanych logowaniach. Każdy system implementuje własną logikę: * własne szablony, adresaci na sztywno; * brak scentralizowanej historii powiadomień; * użytkownicy skarżą się na duplikaty i opóźnienia; * brak jednolitego SLA, metryk i centrum zarządzania. Cel Zaprojektować nową platformę powiadomień, która: * agreguje zdarzenia z różnych źródeł (CRM, Support, Security); * kieruje je według typu i kanału (email, SMS, Telegram, push); * zapewnia jednolitość szablonów, logowanie i obserwowalność, * obsługuje SLA (p95 ≤ 3 sekundy na dostawę), * umożliwia skalowanie i rozszerzanie kanałów w przyszłości. Zadanie dla kandydata 1. Określ funkcjonalne wymagania systemu. 2. Opisz wymagania niefunkcjonalne (niezawodność, wydajność, obsługa błędów). 3. Stwórz diagram kontekstowy (C4 Poziom 2). 4. Dodaj schemat diagramu sekwencji. Na przykład wysyłanie wiadomości z CRM.

sobes.tech AI

Odpowiedź od 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