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

时间:2015-12-03 10:51:21

标签: akka akka-persistence

我应该如何在Akka持久性(Eventsourcing / CQRS)中构建我的Actors?

  • 分层
  • 并行

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

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

所以我的问题是我应该如何构建我的演员呢?选择一个优于另一个特别是与电子商务领域模型相关的优缺点是什么?

akka actor structure

1 个答案:

答案 0 :(得分:3)

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

无论如何,聚合之间应该没有层次结构。聚合应该彼此独立。没有亲子关系。

根据你的描述。有一个User Aggregate可以创建商店并向其添加产品。

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

但是,Product似乎是Store聚合中的实体。

您的第四个例子,“购物车 - 用户可以将其他用户商店中的任何产品添加到购物车中”,揭示了完全不同的东西。你有两种用户。创建和管理给定商店的商店和消费者的用户。它们不一样,应该以不同的方式建模。

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