Підсистема нотифікацій користувачів

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Підсистема, призначенням якої є отримання та обробка запитів на відправлення нотифікацій користувачам згідно з персональними налаштуваннями та каналами зв’язку, які підтримуються реєстром.

2. Функції підсистеми

  • Формування на базі налаштованого шаблону та відправлення поштових нотифікацій з використанням платформного або зовнішнього SMTP-сервера відповідно до поточних налаштувань реєстру

  • Формування на базі налаштованого шаблону та відправлення push-нотифікацій в мобільний додаток Дія

  • Формування на базі налаштованого шаблону та створення in-app-нотифікацій в Inbox кабінету користувача

  • Перегляд переліку та підтвердження перегляду in-app повідомлень користувачем

3. Технічний дизайн підсистеми

Ця діаграма показує компоненти, які входять до Підсистеми нотифікацій користувачів та їх взаємодію з іншими підсистемами в рамках реалізації функціональних сценаріїв.

notifications subsystem design

3.1. Аудит та журналювання подій

Події відправки повідомлень користувачам системою фіксуються у журналі аудиту з повним контекстом.

Тип події Службова назва Опис

SYSTEM_EVENT

SEND_USER_NOTIFICATION

Спроба відправки повідомлення з результатом операції

Детальніше з дизайном Підсистеми журналювання подій аудиту можна ознайомитися за посиланням.

4. Складові підсистеми

Назва компоненти Представлення в реєстрі Походження Репозиторій Призначення

Сервіс нотифікацій користувачів

ddm-notification-service

origin

github:/epam/edp-ddm-notification-service

Обробка запитів на відправку повідомлень користувачам згідно налаштувань каналів зв’язку

Операційна БД нотифікацій

operational:notifications

origin

github:/epam/edp-ddm-registry-postgres/tree/main/platform-db/changesets/notifications

Зберігання шаблонів повідомлень та inbox-нотифікацій користувачів

5. Технологічний стек

При проектуванні та розробці підсистеми, були використані наступні технології:

6. Атрибути якості підсистеми

6.1. Scalability

Підсистема нотифікацій користувачів підтримує як горизонтальне, так і вертикальне масштабування.

Детальніше з масштабуванням підсистем можна ознайомитись у відповідних розділах:

6.2. Security

Підсистема нотифікацій користувачів надає API для перегляду персональних inbox-повідомлень через кабінет автентифікованим користувачам та доступна лише через Підсистему управління зовнішнім трафіком.

6.3. Observability

Підсистема нотифікацій користувачів підтримує журналювання та збір метрик продуктивності для подальшого аналізу через веб-інтерфейси відповідних підсистем Платформи.

Детальніше з дизайном підсистем можна ознайомитись у відповідних розділах:

6.4. Auditability

Підсистема нотифікацій користувачів фіксує значимі технічні та бізнес події, пов’язані з експлуатацією системи кінцевими користувачами.

Детальніше з дизайном підсистеми можна ознайомитись у відповідних розділах:

6.5. Interoperability

Підсистема нотифікацій користувачів наразі підтримує наступні канали зв’язку з користувачами:

inbox

Відправлення in-app повідомлень у скриньку кабінетів користувачів.

email

Відправлення поштових повідомлень користувачам з використанням платформного або зовнішнього поштового сервера.

diia

Відправлення push-нотифікацій у мобільний додаток Дія через зовнішній API-шлюз.