事件源聚合管理包的传输 它可以接收诸如“包裹在早上 5 点加载”、“包裹在早上 7 点停止在这里”等命令......
聚合创建与这些操作相对应的事件,并根据这些事件计算“包裹行程”、“包裹的当前位置”等状态...(这些状态也用作其他状态的构建块)
这些事件被调度来读取模型,但从这些事件派生的状态则不会。
如果我想要一个读取模型 API 来获取包裹行程,似乎有两个选择:
然而,这意味着编写“状态事件”,并且似乎违背了“事件源是重播操作来计算状态”。
你觉得怎么样?
事实上,
在不变量和业务规则验证之后,读取模型会得到更新。换句话说,在读取模型中,您不关心实体迄今为止“如何”获得其状态的历史。你只关心的是什么是它的状态。 所以我认为你应该保留域的最后状态。