Перейти к основному содержимому

FileUpload Saga

Назначение

Сага подтверждения загрузки файлов панорам в файловое хранилище. Выполняется после сохранения в БД записей с идентификаторами файлов граней кубмапа.

Цель

Согласованно зафиксировать загрузку файлов (шаг CommitUpload) и при сбое выполнить компенсирующие действия.

Триггеры

  • AfterFileUploadedNotification — публикуется после успешного сохранения LayoutPanoramaPointFileEntity или PropertyObjectPanoramaPointFileEntity с полем Image (идентификаторы файлов). Payload передаётся в сагу.

Payload: FileUploadSagaPayload

ПолеТипОбязательностьОписание
ImageFileIdGuidОбязательноеИдентификатор файла (или контейнер граней — в зависимости от контракта)
TenantIdGuidОбязательноеИдентификатор тенанта

При нескольких гранях кубмапа payload может содержать набор ImageFileIds или отдельные сообщения на каждый файл — в зависимости от реализации.

Бизнес-логика (шаги)

  1. CommitUpload — подтверждение загрузки файла в хранилище (вызов внешнего сервиса или маркировка файла как загруженного). При успехе — сага завершена. При ошибке — компенсация (например пометить запись в БД как ошибочную или откатить).
  2. Дополнительные шаги (если есть): уведомление других систем, инвалидация кэша.

Диаграмма

Связанные сущности и события