我可以在 axonframework 中同时使用标准存储库和事件源存储库吗?

Can I use both standard repositories and event Sourcing repositories in axonframework?

我开发了几个电子商务网站,我最近注意到了 axonframework。 我正在考虑如何使用 axonframework 实现一个新的电子商务网站。

我的意思是使用标准存储库来简单地保存聚合(在我们的例子中,它们是订单),但我们还需要订单历史记录以供审查。 我想知道我们是否可以使用事件源存储库来保存订单上的所有事件以实现订单历史记录。

问题:

  1. 我可以同时使用标准存储库和事件源存储库吗 在轴突框架中?
  2. 如果我可以同时使用标准存储库和事件源存储库,axonframework 如何通过标识符加载聚合,它是由标准存储库还是事件源存储库完成的?
  3. 欢迎任何建议。

提前致谢。

本质上,您不需要事件溯源就可以记录系统中的所有事件;您需要一个活动商店。在 Axon 中,事件存储是事件总线的特殊版本,它将所有事件存储在 EventStorageEngine(例如 JPA、JDBC 或 Mongo)中,然后再将它们发布给所有侦听器。

对于Repository,只能使用一个Repository来加载一个Aggregate。它要么是事件源,要么不是。当它是事件来源时,聚合是使用它过去发布的事件重建的。否则,ORM机制将根据存储在数据库中的数据重建当前状态。