2017-08-03 44 views
1

我正在尝试使用事件采购概念为订单/交易过程开发微服务。员工可以通过电话为客户下订单/交易。系统还会记录客户分组的订单数量。它使用AWS Kinesis将orderCreated事件中的客户ID发送到客户数据服务,以便我们可以增加创建的订单数量。我们根据DDD概念将订单处理和客户分开。但是,当员工为订单选择错误的客户ID时,我们应该预料到人为错误。所以,有一个功能可以改变客户的相关订单。与多个记录相关的事件采购编排

问题是orderUpdated事件只包含订单的最新数据。这意味着该活动只有新的客户ID。我们可以增加新客户的订单数量。但是,我们应该减少先前客户ID的订单数量。

如何解决这个问题?你能给我一些建议吗?

在此先感谢

+0

客户订单数量在哪里存储?它是否也存储在使用orderUpdated和orderCreated事件的消费者中? –

+0

客户订单计数存储在客户数据快照中。消费者只是消费事件并确定客户订单计数是应该递增还是递减。你有什么建议让它变得更好吗? – Benedict

回答

1

这听起来像一个OrderUpdated事件是不够精细,以满足您的需求。根据您提供的信息,您可能希望有一个更具体的事件,如OrderCustomerChanged,其中包含新的和旧的客户ID。

+0

顺序域事件(orderCreated,orderUpdated和orderCustomerChanged)有没有不同的数据结构? – Benedict

+1

是 - 每个事件类型都是独立的,并且可以具有任何最适合的结构。 – Codescribler

+1

不错,简单而且往往不是那么明显的答案。 –