我们建立了一个规划科学会议计划的应用程序,包括会议室、会议、讲座(口头演讲)、演讲者、椅等(项目规划上下文)。
其中一个重要的部分是科学论文,和他们的作者,来自论文提交的,这也可以导致讲座或海报展示。
纸张管理上下文是一个独立的有界上下文,它使用外部api在第三方工具之间同步数据。它充当一个反腐败层(ACL),用于程序规划上下文.
演讲者、椅子和作者的概念有一个person。我想介绍一个独立的人员管理上下文,以减少重复的人员,并在程序规划和纸张管理上下文中重用独特的人员,使用人员的唯一标识符,并通过复合UI显示信息。稍后,我们希望将另一个会议注册上下文与另一个第三方api的相同ACL逻辑集成起来。
正如我从许多书籍、博客等中了解到的那样,只有人的管理环境才能拥有人的数据并创建新的实例。其结果将是在从外部纸张管理api导入所有数据时,为每个作者创建一个新的人员(同步api调用),或者在开始时使用一个批处理调用。
这耦合到高了吗?我应该在论文管理上下文中存储作者的复制的个人数据吗?这似乎是错误的,并使去重复很难。
发布于 2020-03-04 06:02:12
您可能需要重新考虑您对DDD的使用。如果没有DDD的约束,这可能会更容易解决,因为听起来它有很多数据。假设您希望保持DDD,那么您将需要解耦您的上下文。有几种方法可以解耦您的上下文,但我最喜欢的两个方法是:
您可以在提取每个作者之后触发域事件,并且该事件可以由任何需要它的上下文处理。您可以使用rest,在这里可以发送作者数据,它将充当第二个域的“应用程序服务”。
我想我明白你的问题了。如果我还没有解决这个问题或者解决了一些完全不同的问题,请纠正我。
https://stackoverflow.com/questions/60518962
复制相似问题