CQRS - 命令存储持久规则

问题描述 投票:0回答:2

我一直在使用Paramore Brighter来实现CQRS及其Command Store。我的问题是:

最佳做法是什么,是在处理方法完成之前或之后存储命令?我读过here它建议以前这样做但是如果处理程序失败我们不想存储命令吗?

但是我可以想到你希望在执行hendler方法之前/之后存储命令的几种情况:

案例A.如果有IncreaseCreditLimitCommand,并且在客户检索期间,找不到客户。 IMO,我们不想存储这个命令,对吗?

案例B.如果存在IncreaseCreditLimitCommand,并且在业务验证期间拒绝客户增加限制。 IMO,我们还想存储这个命令,不是吗?

command cqrs brighter
2个回答
1
投票

最佳做法是什么,是在处理方法完成之前或之后存储命令?我在这里读到它建议以前做,但是如果处理程序失败我们不想存储命令吗?

为什么不?如果我们希望能够重现以后发生的事情,那么我们还需要能够重现失败的命令。

如果你正在考虑一个持久性命令是一个特征的设计,那么LMAX Disruptor的各种写作都是很好的阅读。


0
投票

我不知道“Paramore Brigther”是什么,但我可以告诉你有关DDD和CQRS的信息。这两种方法通常用于事件源,因为它们像拼图一样拼凑在一起。在事件源中,您可以保存事件而不是命令。由于DDD是事件驱动的,因此它很有意义。我不打算更深入地解释它,因为它是一个非常大的主题,但我认为你应该考虑这种方法而不是存储命令。它将在未来为您解决许多设计问题。

© www.soinside.com 2019 - 2024. All rights reserved.