2

我有一个包含超时的传奇,它将在未来触发业务流程。这个传奇可以基于来自核心系统的“取消”事件或由客户处理程序手动结束。客户处理程序需要能够在某些键值上查询计划流程并手动取消超时(例如结束 saga)。

该系统将由所描述的 saga 和一个具有搜索功能的 Web 应用程序组成,该应用程序将列出计划的进程以及向 sagas 发出“取消”命令的可能性。

那么问题是如何列出计划的业务交易(此信息存储为 saga 数据)?最天真的解决方案是直接访问 saga 数据,这可能不是一个好主意,因为这是 saga 的内部数据,并且可以更改存储等。

4

1 回答 1

2

一个解决方案是让 saga 发布影响 saga 状态的每个操作的内部事件。然后可以使用这些事件来更新 Web 应用程序可以读取的视图模型。这将使 saga 中所需的数据与 Web 应用程序中所需的数据隔离开来。视图模型只需要与 saga 共享某种相关 id。

于 2016-12-09T11:05:39.190 回答