微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

事件源-提供给Command的数据和保存在Events中的数据

如何解决事件源-提供给Command的数据和保存在Events中的数据

我正在研究事件源,我有一些想法需要弄清楚。

例如网上商店-

客户将商品添加到购物篮并保存订单。

命令处理程序可以在客户集合根上创建订单,并添加一个OrderCreated事件,该事件包含客户ID,订单ID,商品ID,数量和单价。一切都很简单,但是如果汇总需要检查该商品是否有特价,该怎么办?

例如,如果这是一个篮子服务,它将订阅目录服务中的事件并存储它自己对目录服务的投影,然后可以使用它,因此篮子服务将包括一个事件存储以及某种形式的目录服务的投影?

或者如果在我刚刚描述的示例中,如果购物篮和商品目录功能是同一应用程序的一部分,并且它们仅保存事件数据,那么当客户创建订单时,处理程序将从事件中提取所有已订购商品通过存储库进行存储,将所有事件应用于它们,然后将它们返回给处理程序,以检查该商品是否有特价。

解决方法

汇总是否需要检查以查看该商品是否有特价?

它需要执行查询以获取所需的信息。

从汇总的角度来看,这些数据是外部的,因此它(或向其发送命令的处理程序)需要查询才能访问该信息。

查询的工作方式取决于您(每种方法各有利弊),查询处理程序可以:

  • 调用一个存储库,以加载汇总并检查特殊优惠(您也可以考虑将事件源仅存在于系统的一部分中,而使这一部分使用另一种方式存储dara)
  • 远程调用Catalog Service API以检查特价商品
  • 查询本地数据库,该数据库填充了读取目录服务发出的事件并“本地”存储到购物篮服务

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。