2

У меня есть сага, содержащая тайм-аут, который вызовет бизнес-процесс в будущем. Эта сага может быть закончена рано либо на основе «отмененного» -эвента из базовой системы, либо вручную с помощью обработчика клиента. Обработчик клиента должен иметь возможность запросить запланированные процессы по некоторым ключевым значениям и вручную отменить тайм-аут (например, завершить сагу).Есть ли предпочтительный способ перечислить sagadata в веб-приложении?

Система будет состоять из описанной саги и веб-приложения с функцией поиска, в которой будут перечислены запланированные процессы и возможность выдавать команды «отменить» на саги.

Вопрос заключается в том, как перечислить запланированные бизнес-операции (эта информация хранится как данные саги)? Наиболее наивным решением было бы получить доступ к данным саги напрямую, что, вероятно, не является хорошей идеей, поскольку это внутренние данные для саги, и их можно изменить и т. Д.

ответ

2

Решение состоит в том, чтобы опубликовать сагу события по каждому действию, влияющие на состояние саги. Эти события затем могут быть использованы для обновления модели представления, которую веб-приложение может читать. Это позволит сохранить данные, необходимые в саге, отделенной от данных, необходимых в веб-приложении. Модель просмотра должна будет использовать только определенный идентификатор корреляции с сагой.

Смежные вопросы