domain-driven-design - 在面向 DDD 的微服务中,基础设施和实体可以重用吗?

标签 domain-driven-design microservices data-access-layer entities

我正在考虑本文 ( https://learn.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/ddd-oriented-microservice ) 中描述的面向 DDD 的微服务架构。但我对数据访问和实体存有疑问。

对于我来说,将域实体和数据访问放入一个公共(public)项目甚至一个 block 中是否有意义?因为我认为我会为每个服务多次重写相同的数据访问。

最佳答案

TL;DR:没有。

微服务应该使用 API 相互通信。

两个原因:

  • 微服务作为聚合根定义了清晰的事务边界。重用代码意味着可能会采取捷径来避开前置条件、后置条件和不变检查。
  • 其次,代码共享迫使您将对模型的更改与所有依赖的微服务集成,这可能违背了采用微服务的目的。拥有不同的 API 版本将帮助您逐步进行管理。

关于domain-driven-design - 在面向 DDD 的微服务中,基础设施和实体可以重用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46746885/

相关文章:

design-patterns - DDD : Saving Changes to Model and accessing Repository

github - 基于限界上下文拆分源代码的最佳实践

微服务 - 事件存储技术(在事件源解决方案中)是否在所有微服务之间共享?

javascript - 如何为两个 ddp 连接的应用程序使用相同的数据库

c# - Entity Framework 中多个 "Include"-s 的最佳实践是什么?

c# - 我在理解 IQueryable<T> 时遇到问题

asp.net-mvc - 不使用 Entity Framework 的 MVC 架构

events - 我们真的可以使用 Event Sourcing 和 CQRS(一种用于电子商务结账漏斗的事件驱动架构)吗?

微服务 "JOINS"

c# - 使用 ViewModel 的 Winforms 数据绑定(bind)