领域驱动设计 – 事件采购:触发他人和重建状态的事件

领域驱动设计 – 事件采购:触发他人和重建状态的事件,第1张

概述通过从EventStore重播事件重建模型,特别是当事件可能触发其他事件发生时,我正在努力解决应该发生的情况. 例如,已经进行了10次购买的用户应该升格为首选客户,并收到一封电子邮件,提供他们某些促销活动. 我们显然不希望每次重建该用户的模型时发送电子邮件,但是当我们重播第10个PurchaseMadeEvent时,我们如何避免发生这种情况? 事件链接可能非常棘手,很容易失去控制,所以我尽可能地 通过从EventStore重播事件来重建模型,特别是当事件可能触发其他事件发生时,我正在努力解决应该发生的情况.

例如,已经进行了10次购买的用户应该升格为首选客户,并收到一封电子邮件,提供他们某些促销活动.

我们显然不希望每次重建该用户的模型时发送电子邮件,但是当我们重播第10个PurchaseMadeEvent时,我们如何避免发生这种情况?

解决方法 事件链接可能非常棘手,很容易失去控制,所以我尽可能地避免.例如在您描述的场景中,我会提出一个UserPromotedEvent(甚至可能使用PromoteUserCommand),但是我不会考虑将电子邮件的实际/实体发送作为我的域的一部分.相反,我将为UserPromotedEvent创建额外的处理程序/反规范化程序,它可以注册需要发送电子邮件和一些额外的检查.之后,另一个进程将收集尚未处理的电子邮件的信息并发送它们.这种方法将减轻不完全可访问/可扩展的电子邮件网关可能出现的问题.

更一般来说 – 事件链接的需要经常表明您应该考虑为该过程实施Saga.

总结

以上是内存溢出为你收集整理的领域驱动设计 – 事件采购:触发他人和重建状态的事件全部内容,希望文章能够帮你解决领域驱动设计 – 事件采购:触发他人和重建状态的事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1092169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存