Підсистема нотифікацій користувачів
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Загальний опис
Підсистема, призначенням якої є отримання та обробка запитів на відправлення нотифікацій користувачам згідно з персональними налаштуваннями та каналами зв’язку, які підтримуються реєстром.
2. Функції підсистеми
-
Формування на базі налаштованого шаблону та відправлення поштових нотифікацій з використанням платформного або зовнішнього SMTP-сервера відповідно до поточних налаштувань реєстру
-
Формування на базі налаштованого шаблону та відправлення push-нотифікацій в мобільний додаток Дія
-
Формування на базі налаштованого шаблону та створення in-app-нотифікацій в Inbox кабінету користувача
-
Перегляд переліку та підтвердження перегляду in-app повідомлень користувачем
3. Технічний дизайн підсистеми
Ця діаграма показує компоненти, які входять до Підсистеми нотифікацій користувачів та їх взаємодію з іншими підсистемами в рамках реалізації функціональних сценаріїв.
3.1. Аудит та журналювання подій
Події відправки повідомлень користувачам системою фіксуються у журналі аудиту з повним контекстом.
Тип події | Службова назва | Опис |
---|---|---|
SYSTEM_EVENT |
SEND_USER_NOTIFICATION |
Спроба відправки повідомлення з результатом операції |
Детальніше з дизайном Підсистеми журналювання подій аудиту можна ознайомитися за посиланням. |
4. Складові підсистеми
Назва компоненти | Представлення в реєстрі | Походження | Репозиторій | Призначення |
---|---|---|---|---|
Сервіс нотифікацій користувачів |
|
origin |
Обробка запитів на відправку повідомлень користувачам згідно налаштувань каналів зв’язку |
|
|
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 повідомлень у скриньку кабінетів користувачів.
-
Відправлення поштових повідомлень користувачам з використанням платформного або зовнішнього поштового сервера.
- diia
-
Відправлення push-нотифікацій у мобільний додаток Дія через зовнішній API-шлюз.