是否有一种在Web应用程序中列出sagadata的首选方法?

时间:2016-12-09 10:59:28

标签: viewmodel nservicebus datastore distributed-system nservicebus-sagas

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

系统将包含描述的传奇和具有搜索功能的Web应用程序,该应用程序将列出计划的进程以及向传单发出“取消”命令的可能性。

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

1 个答案:

答案 0 :(得分:2)

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