1

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

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

问题:

  1. 我可以在 axonframework 中同时使用标准存储库和事件源存储库吗?
  2. 如果我可以同时使用标准存储库和事件源存储库,axonframework 如何按标识符加载聚合,它是由标准存储库还是事件源存储库完成的?
  3. 任何建议表示赞赏。

提前致谢。

4

1 回答 1

4

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

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

于 2017-06-20T19:01:34.870 回答