我应该如何在Akka持久性中构造持久性参与者?

How should I structure Persistence Actors in Akka persistence?

我应该如何在Akka持久性(Eventsourcing / CQRS)中构造我的演员?

  • 分层的
  • 平行

我的电子商务应用程序中有这些域对象

  • 用户-用户可以创建帐户
  • 商店-用户可以创建商店
  • 产品-用户可以在其商店中添加产品
  • 购物车-用户可以将其他用户商店中的任何产品添加到购物车中。

所以我的问题是我应该如何构造我的演员?就电子商务领域模型而言,选择一个而另一个选择的优缺点是什么?

akka


我认为您的问题更多是关于集合体的边界。

在任何情况下,聚合之间都不应存在任何层次结构。集合体应该彼此独立。没有亲子关系。

根据您的描述。有一个用户聚合可以创建商店并向其中添加产品。

商店可以是由用户聚合发起的独立聚合。请注意,用户可以创建商店这一事实并不意味着他们应该具有父/子关系。更多有关访问控制。商店是由用户创建的,只有该用户有权向其添加产品。

但是,产品似乎是商店集合中的一个实体。

您的第四个示例"购物车-用户可以将其他用户商店中的任何产品添加到购物车中",这揭示了完全不同的东西。您有两种用户。创建和管理商店的用户以及给定商店的使用者。它们并不相同,因此应该以不同的方式进行建模。

尝试为您的业务领域建模,而不要仅仅因为对象相似而重用对象。