【发布时间】:2012-04-30 01:35:59
【问题描述】:
我正在开发 CQRS/事件存储系统。目前,我使用的模式是命令同步。也就是说,在命令完成之前,用户界面不会将操作显示为已完成,并且会向用户显示成功/失败。在命令执行期间,所有生成的事件(例如,聚合根 Y 上发生的操作 X)都存储在持久存储中。
我读过的所有关于 CQRS 的描述都实现了命令存储。我想知道在我的情况下是否需要这样做。
另一个注意事项 - 有很多长时间运行的命令类型操作,所以我将操作分解为一个生成事件的命令,然后这些事件依次发出更多命令。这些命令是幂等的,基于聚合根的状态。我不知道这会如何影响答案,但值得指出。
【问题讨论】:
-
能否提供一些存储命令的实现示例?我见过的大多数示例只存储命令产生的事件。
-
我没有任何框架,但没有事件源的 CQRS 记录回放命令,至少在我的理解中。
-
我有点担心安全问题。您打算如何处理 ChangeUserPassword 等包含明文密码的命令?
标签: design-patterns cqrs event-sourcing