Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Event sourcing 我可以在聚合根中使用投影仪吗_Event Sourcing - Fatal编程技术网

Event sourcing 我可以在聚合根中使用投影仪吗

Event sourcing 我可以在聚合根中使用投影仪吗,event-sourcing,Event Sourcing,在AggregateRoot中使用投影可以吗?典型的情况是在下订单时在OrderAggregateRoot内使用ProductInventoryProjection。这是反模式吗 在AggregateRoot中使用投影可以吗 这很常见;试图直接从事件历史记录中支持查询可能非常笨拙。因此,预先计算答案并单独缓存它们是很常见的——设计一个投影函数来实现这一点通常被认为是长期可维护性的好选择 下订单时在OrderAggregateRoot内使用ProductInventoryProjection 这种

在AggregateRoot中使用投影可以吗?典型的情况是在下订单时在OrderAggregateRoot内使用ProductInventoryProjection。这是反模式吗

在AggregateRoot中使用投影可以吗

这很常见;试图直接从事件历史记录中支持查询可能非常笨拙。因此,预先计算答案并单独缓存它们是很常见的——设计一个投影函数来实现这一点通常被认为是长期可维护性的好选择

下订单时在OrderAggregateRoot内使用ProductInventoryProjection

这种情况变得更加棘手,因为现在您正在引入库存和订单之间的耦合。在一个整体中,所有的代码都在锁步骤中更新,您可能会没事

更具挑战性的是,库存代码可以独立于订单代码进行更改,因为现在很容易使用投影仪,以便对某些事件历史给出“错误”的答案

当然,如果您的事件和预测是稳定的,那么风险就会降低——每个人都使用自己的代码副本,而这些代码在10年内都不需要更改,这可能不会带来痛苦


在更不稳定的情况下,将预测保存在库存中并提供订单消耗的报告可能是更具成本效益的选择。

在更不稳定的情况下,将预测保存在库存中并提供订单消耗的报告可能是更具成本效益的选择。
在这种情况下,库存和订单是两种不同的AR,库存如何向订单提供
报告