Джина Гайд

Взаимодействия

FLOW-ARCH-REGISTER — Регистрация

Основная ветка после проверки личности. Внешний канал не входит в синхронный путь подтверждения.

Сценарии: SCN-POS-002, SCN-POS-003, SCN-POS-019

sequenceDiagram
  participant CMP_APP_ACCESS as Серверный доступ
  participant CMP_APP_REGISTRATION as Регистрация
  participant CMP_APP_FLOW as Жалоба и состояние
  participant STORE_DATA_MAIN as Операционные данные
  participant CMP_APP_AUDIT as Аудит
  CMP_APP_ACCESS->>CMP_APP_REGISTRATION: 1. Передать проверенный запрос#59; валидировать до записи
  CMP_APP_REGISTRATION->>CMP_APP_FLOW: 2. Начать транзакцию, проверить ключ и вызвать владельца жалобы
  CMP_APP_FLOW->>STORE_DATA_MAIN: 3. Сохранить жалобу и ключ#59; конфликтует уникальный индекс
  CMP_APP_FLOW->>CMP_APP_AUDIT: 4. Записать эффективное изменение в той же транзакции
  CMP_APP_AUDIT->>STORE_DATA_MAIN: 5. Зафиксировать транзакцию#59; вернуть сохранённый результат по стеку вызова

Границы/отказы: Возвраты подразумеваются стеком вызова и не дублируют связи. Ошибка валидации прекращает поток до записи; повтор ключа возвращает прежний результат, конфликт тела определяется REQ-IN-002. Изоляция/индексы проверяются конкурентным тестом; порог производительности остаётся в REQ-NFR-001.

FLOW-ARCH-PUBLISH — Публикация с восстановлением уведомления

Линейная ветка успешной публикации; фоновый участок начинается после commit. Отказные ветки перечислены ниже.

Сценарии: SCN-POS-008, SCN-POS-013, SCN-ARC-001

sequenceDiagram
  participant CMP_APP_ACCESS as Серверный доступ
  participant CMP_APP_PUBLICATION as Публикация
  participant CMP_APP_ROUTING as Маршрутизация
  participant CMP_APP_RESPONSES as Ответы ведомств
  participant STORE_DATA_MAIN as Операционные данные
  participant CMP_APP_FLOW as Жалоба и состояние
  participant CMP_APP_NOTIFY as Уведомления и outbox
  participant CMP_APP_AUDIT as Аудит
  participant CMP_APP_CHANNEL as Адаптер внешнего канала
  participant EXT_SERVICE_NOTIFY as Провайдер уведомлений
  CMP_APP_ACCESS->>CMP_APP_PUBLICATION: 1. Подтвердить публикацию
  CMP_APP_PUBLICATION->>CMP_APP_ROUTING: 2. В общей транзакции получить актуальный комплект
  CMP_APP_PUBLICATION->>CMP_APP_RESPONSES: 3. Проверить согласованные версии#59; защитить от конкурентного изменения
  CMP_APP_PUBLICATION->>STORE_DATA_MAIN: 4. Сохранить неизменный итог
  CMP_APP_PUBLICATION->>CMP_APP_FLOW: 5. Обновить состояние через владельца жалобы
  CMP_APP_FLOW->>STORE_DATA_MAIN: 6. Сохранить новое состояние в той же транзакции
  CMP_APP_PUBLICATION->>CMP_APP_NOTIFY: 7. Создать задание через владельца уведомления
  CMP_APP_PUBLICATION->>CMP_APP_AUDIT: 8. Записать эффективную публикацию через владельца аудита
  CMP_APP_AUDIT->>STORE_DATA_MAIN: 9. Сохранить аудит в той же транзакции
  CMP_APP_NOTIFY->>STORE_DATA_MAIN: 10. Сохранить задание#59; координатор фиксирует общую транзакцию
  CMP_APP_NOTIFY->>STORE_DATA_MAIN: 11. Фоновый обработчик после commit захватывает сохранённое задание
  CMP_APP_NOTIFY->>CMP_APP_CHANNEL: 12. Передать минимальное сообщение
  CMP_APP_CHANNEL->>EXT_SERVICE_NOTIFY: 13. Отправить провайдеру

Границы/отказы: Публикация, answered и задание фиксируются вместе. Отказ до commit откатывает все три; после commit задание восстанавливается из БД. Внешний вызов находится вне транзакции. Успех провайдера и потеря квитанции могут привести к повтору уведомления; exactly-once внешней доставки не обещано. Полнота/версии и повтор публикации проверяются исходными SCN, расписание повторов — REQ-DEL-002. Диаграмма не изображает все ветви.

FLOW-ARCH-PROJECTION — Подготовка и чтение агрегатов

Построение привилегированным модулем и отдельный аналитический запрос. Время среза задаёт исходная спецификация.

Сценарии: SCN-POS-015, SCN-POS-016, SCN-ARC-002

sequenceDiagram
  participant CMP_APP_PROJECTION as Построение проекции
  participant STORE_DATA_MAIN as Операционные данные
  participant STORE_DATA_AGG as Аналитические агрегаты
  participant CMP_APP_ACCESS as Серверный доступ
  participant CMP_APP_QUERY as Аналитические запросы
  CMP_APP_PROJECTION->>STORE_DATA_MAIN: 1. Прочитать необходимые факты согласованного снимка
  CMP_APP_PROJECTION->>STORE_DATA_MAIN: 2. Прочитать число поручений для того же снимка
  CMP_APP_PROJECTION->>STORE_DATA_MAIN: 3. Прочитать публикации для того же снимка
  CMP_APP_PROJECTION->>STORE_DATA_AGG: 4. Атомарно опубликовать версию разрешённых агрегатов
  CMP_APP_ACCESS->>CMP_APP_QUERY: 5. Принять аналитический запрос к выбранной версии
  CMP_APP_QUERY->>STORE_DATA_AGG: 6. Читать только опубликованные агрегаты

Границы/отказы: Исходные чтения — один согласованный снимок, не независимые актуальные запросы. Недостроенная версия недоступна запросам; запрос не делает fallback в операционную БД. Формулы, когорты и suppression принадлежат REQ-ANA-*. Политика реальных данных открыта в Q-POS-002; изоляция модулей одного процесса не защищает от компрометации всего backend.