例如,我有一个post服务。在UI上,我需要显示帖子和用户信息(重定向到用户页面的用户名和id(
选项:
-
我应该在post服务中存储用户名和id吗。(当每个用户注册到系统时,我将通过RabbitMQ向post服务发送子集详细信息(。(来自UI的总请求=1(
-
我将只存储用户(AR(的Id。在UI组件获取id为的用户(来自UI的总请求=2(
两者都可以。决策基于如何在不同的边界上下文之间映射概念。模式为:
- 防腐层
- 共享内核
- 开放主机服务(选项2(
- 单独的方式
- 客户-供应商
- 保形主义者
- 合伙人
- 已发布的语言
这不仅是个人偏好,也是关于组织结构的(康威定律(。
如果两个上下文(帖子和用户(都由您的团队控制,您可以选择其中一个。考虑到选项1的复杂性,我更喜欢选项2,因为它非常直。从更简单的开始,然后涉及到您的体系结构始终是一个好主意。