采用事件采购的库存计数

问题描述 投票:2回答:1

我正在尝试使用事件源/ CQRS重写基于CRUD的库存系统。

我遇到的问题是如何处理库存盘点。这个想法是商店有时会想要计算他们的库存并确定是否有任何缩减(我们认为已售出但仍在库存中的物品,或者我们认为是在库存但不能在商店中找到的物品)。

在CRUD系统中,当有人开始计数时,系统会在名为“期望”的表格中创建所有可用库存的列表,并且在扫描每个库存项目时,它基本上将该项目标记为期望列表。收缩的不同之处在于期望列表中未扫描的任何内容,或扫描的任何不在期望列表中的内容。

问题是我无法理解如何在ES中表示这一点。如果我唯一的实体是“库存”,我如何确定计数何时开始或完成?

即使是我能看到的任何ES / CQRS库存系统的例子也会有所帮助

任何帮助非常感谢。

architecture cqrs event-sourcing inventory inventory-management
1个回答
1
投票

在有人开始的CRUD系统中......

“开始”这个词在这里是一个很大的暗示 - 它暗示了一个将有自己的簿记要做的过程。

需要注意的另一件事是 - 除了领域模型关于“应该”存在什么库存的想法 - 几乎所有数据都来自现实世界。有些人决定何时开始审计,审计结束时,会考虑哪些库存。

在事件源世界中,您应该期望此过程拥有自己的事件流 - 一开始就会发生一系列事件,以记录您需要考虑哪些库存,然后在库存处置变得清晰时发生其他事件。

请注意,数据是库存的副本;就像当前进程将您想要的东西复制到新表中一样。当像自治这样的问题出现时,这变得非常重要。

(它也可能是摘要 - 在执行期望审计时,库存表上可能存在您不重视的字段。)

所以你说拥有不代表真正“东西”的聚合物是可以的

是的,虽然更有用的想法是业务流程的实例是真实的。

如果您愿意,可以考虑将日志/日志/文档作为“事物”来跟踪正在进行的工作。

© www.soinside.com 2019 - 2024. All rights reserved.