我正在开发一个遵循ddd和cqrs原则的事件源应用程序,它允许发布广告来销售商品。
有一个特定的不变量,我试图建模,似乎涉及到一个AR的大批量更新,我真的不知道如何去做。
不变量如下:
-
会员可以发布广告
-
一个成员可能被管理员禁止
-
如果会员被禁止,他的广告必须暂停
为了讨论的目的,一个广告需要有一个状态,因为一个成员可以通过点击一个广告来购买一个项目,所以知道一个广告是否活跃是很重要的。
我设计了我的聚合根:
根据上下文的不同,成员可以是买方或卖方,因此我根据需要装饰成员对象。
当广告发布时,它们当然被插入到一个read模型中。
现在,当一个成员被禁止时,有一个关联的事件由成员ar触发。
成员被禁止(成员ID)
我的问题是如何找到会员拥有的每一个广告,并暂停它们?
虽然我可以依赖会员身份进行购买交易,但重要的是,广告会跟踪其状态,因为还有其他类似的操作可能会触发向会员发送电子邮件,例如,表明其广告因此类原因而暂停。
所以经过深思熟虑,我最好的方法是创建一个长时间运行的进程,在这个进程中,我为memberwasbindowed创建一个处理程序,然后在read模型中查找他的活动广告,并发出命令逐个挂起它们。
我遗漏了什么吗?我想用一个流程管理器,但是我知道你不应该从一个pm访问read端。在任何情况下,PM在大多数情况下确定发送给一个AR的命令。
我遗漏了什么吗?