2有界上下文,第一是“产品目录”,第二是“营销”。
营销环境取决于产品目录。
市场营销需要来自产品目录的特定数据。我在两种方法之间犹豫不决:
1-将数据保存在产品目录中,在产品目录中创建一个服务接口,用于查询特定营销用例的数据。
2-有一个从产品目录数据库中查询数据的过程,并只将所需的信息(加上所需的任何模型转换)传输到营销数据库中。
请注意,营销环境并不真的需要来自目录的实时最新数据,我现在也不想解决性能问题。
我喜欢第一个选项,因为它看起来更简单,但我不喜欢它,因为我不确定专门为另一个上下文用例设计服务是否真的是一个好的实践?在我看来,这就像是市场营销的上下文逻辑泄露到了产品目录逻辑中,我担心许多其他依赖上下文和用例的服务会成倍增加。
发布于 2018-11-29 05:41:40
产品目录(PC)位于上游(US),市场营销(M)位于下游(DS)。
如果我没有误解你,基本上你是在问你是应该选择同步集成(选项1)还是异步集成(2)。
既然你说M不需要来自PC的实时数据,也许我应该选择异步集成。但我不会通过db集成来实现,而是使用事件:
US context (PC)在每次数据发生变化时发布事件(例如ProductWasCreated),DS context (M)将订阅这些事件并做出反应(在其数据库中插入产品)。
关于方法(1),我认为PC提供M所需的服务是没有问题的。服务必须提供客户端需要的服务,它不会感觉到有界上下文会提供没有人想要的东西。无论如何,这一切都取决于团队之间的关系(客户/供应商,合作伙伴关系,...)
你应该看看不同类型的上下文映射(例如,在Vauhgn Vernon的红皮书中)。
https://stackoverflow.com/questions/53521418
复制相似问题