我正在使用CQRS构建一个新项目,它是一个3层应用程序,并且预计客户端状态是同步的。服务器向客户端接收命令和回调事件。
目前,该模型有几个可以添加/删除/更新的子模型,每个模型都有自己的命令。事件是特定领域的,即
- UpdateItemCommand
- CreateSubItemCommand
- RemoveSubItemCommand
- UpdateSubItemCommand
- ...
- ItemFieldAUpdatedEvent
- SubItemFieldAUpdatedEvent
- SubItemFieldBUpdatedEvent
- ...
所以这是我的询问,客户端获取模型的当前状态,用户编辑本地模型,单击Save按钮,这就是我的bug。我应该
- 比较模型的原始状态(使用已接收事件更新)和模型的编辑状态以生成一组命令(在每个接收到的事件上,识别已更新的字段并通知用户是否需要编辑了一个已更改的字段,
- 创建命令,因为用户正在编辑模型正在执行和撤消编辑(这将很难管理),
- ...
基本上我不知道应该采用哪种策略来生成命令!
那里有一个例子吗,我是谷歌周围但发现注意到这个问题。
谢谢,
多米尼克