关于DDD中聚合根的确定

              
weechang
17-10-13 1 648 1

最近在动手做一个CQRS 和 event source 结合的微服务项目。实施过程中。遇到了一个跨服务关联查询的问题。虽然现在还没有确定究竟哪里会遇到。但是我知道自然而然肯定会遇到的。比如USER 这个service和其他service之间的跨服务关联查询。这样的话。就会产生一些问题。网上找了一些相关资料。也没有比较好的解决办法。就是DDD。采用DDD的聚合根来解决。但是关于聚合根的确定。还有一些疑惑。希望能够得到前辈的一些指点。
1.关于DDD聚合根的确定。感觉很难把握好这个聚合。或多或少。不同的领域之间都会有些关联。比如支付。订单。用户。商品。这样的话。岂不是只有一个聚合根了。
2.不同领域之间的关联。这个关联应该采用直接的领域对象关联。还是采用外键关联。这也是我心中的一个疑惑。
忘大佬不吝赐教。感谢。感谢

1
banq
2017-10-13 14:49

2017-10-13 14:06 "@
weechang
"的内容
比如支付。订单。用户。商品。这样的话。岂不是只有一个聚合根了。 ...


聚合根确定根据上下文划分,比如在支付 订单 用户和商品这个案例中,典型划分为订单 和支付两个上下文,也就是说,订单上下文完成订单的创建,支付上下文完成订单的支付,这是两个不同业务流程,或者说涉及了不同的部门,或者说是两个不同场景。

领域之间是通过事件实现通讯,不推荐直接通过外键或对象引用这样直接方式耦合,事件驱动能够实现组件或微服务之间解耦,见这篇文章:http://www.jdon.com/49113