【发布时间】:2015-06-20 15:03:13
【问题描述】:
我有点困惑。我在一家年轻的银行公司工作,我们决定实施 DDD 架构来打破复杂性。
所以,这是我的问题(它遵循团队中某人提出的设计建议)。假设我们有 3 个不同的域。 D1、D2、D3,公开域(Web)服务。每个域都操作依赖于相同表的强类型业务实体。在这些领域之前,我们希望微服务以集中的方式保证表中持久化的数据是一致的。 D1、D2 和 D3 要求微服务将符合特定规则的数据持久化。我们希望微服务充当表的 CRUD 代理。微服务为 D1、D2 和 D3 域提供特定的 DTO,将表混淆为 D1、D2、D3。
这种方法听起来不错吗?您会考虑在 DDD 架构中使用微服务来管理 1+ 个域的 CRUD 和数据一致性吗?使用微服务“CRUDing”和验证数据是否会破坏有界上下文?在 DDD 架构中处理微服务的最佳实践是什么?
非常感谢您的贡献,
[编辑]
以下文章帮助我提炼了自己的想法:http://martinfowler.com/bliki/MicroservicePremium.html
微服务在单体系统无法维护的复杂情况下非常有用。它们不是前期设计实施的良好候选者。另一方面,DDD 试图在项目一开始就解决复杂性。成功的 DDD 不应该满足微服务实现。
【问题讨论】:
-
不确定这是否能回答你所有的问题,但我发现这是一本关于微服务主题的有趣读物:particular.net/blog/microservices-future-or-empty-hype
-
你可以选择任何你想要的架构,没有像 DDD 架构这样的东西。由微服务组成的架构在使用 DDD 时也能正常工作(或不好)。
-
在 DDD 中,多个域不会共享相同的数据库表。这也适用于微服务。从您在问题中所写的内容来看,您的系统似乎根本不适合 DDD 方法。
标签: domain-driven-design microservices