【发布时间】:2020-05-27 13:03:31
【问题描述】:
我已阅读 Axon 文档并查看了所有提供的示例项目,尤其是我在此处引用的 AxonBank,但有一件事仍然困扰着我,并且据我所知没有解释:
据我了解,在 Axon 中,您对代表物化视图的读取数据库执行查询,例如包含最新 BankAccount JPA 实体 (here) 的 H2。但是,如果您有一个 Spring 存储库,例如JpaRepository<BankAccount, Long> (here),你也有 save-method,它应该只用于命令。不应该把仓库拆分成只读和只写仓库吗?
是否有人还可以向我指出 Axon 如何与此存储库一起工作的文档?因为对于联合开发人员来说,它看起来像一个“普通”的 JPA 存储库,即实体似乎是可变的并且始终是最新的。
但从理论的角度来看,我期望一个处于零状态的不可变实体通过应用所有事件来创建投影,这是否在 Axon 的背景中发生?
如果我用JpaRepository#save 更新实体而不是聚合,会发生什么情况?它们会不同步吗?
在这种情况下,我们似乎有两个事实来源,理论上不应该如此。
【问题讨论】:
标签: event-sourcing axon