我应该如何在Akka持久性(Eventsourcing / CQRS)中构建我的Actors?
我的电子商务应用程序中有这些域对象
所以我的问题是我应该如何构建我的演员呢?选择一个优于另一个特别是与电子商务领域模型相关的优缺点是什么?
答案 0 :(得分:3)
我认为您的问题更多的是关于聚合的边界。
无论如何,聚合之间应该没有层次结构。聚合应该彼此独立。没有亲子关系。
根据你的描述。有一个User Aggregate可以创建商店并向其添加产品。
商店可以是由用户聚合发起的分开聚合。请注意,用户可以创建商店这一事实并不意味着他们应该拥有父/子关系。它更多的是访问控制。商店由用户创建,只有该用户才有权向其添加产品。
但是,Product似乎是Store聚合中的实体。
您的第四个例子,“购物车 - 用户可以将其他用户商店中的任何产品添加到购物车中”,揭示了完全不同的东西。你有两种用户。创建和管理给定商店的商店和消费者的用户。它们不一样,应该以不同的方式建模。
尝试为您的业务域建模,而不是仅因为它们相似而尝试重用对象。