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

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

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

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

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

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

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

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

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

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

notifications subsystem design

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

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

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

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

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

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

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

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-нотифікацій користувачів

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

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

Scalability

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

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

Security

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

Observability

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

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

Auditability

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

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

Interoperability

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

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

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

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