【问题标题】:Inheritance across micro-service entities in Domain Driven Design领域驱动设计中跨微服务实体的继承
【发布时间】:2021-11-12 16:13:08
【问题描述】:

我有一个微服务系统。 一个 serviceH 管理书籍。 一个 serviceM 管理杂志。

他们提供 RESTful 接口来处理他们的实体。

图书域和杂志域 - 是不同的域,因为图书和杂志的发行和推广方式完全不同。

仍然有一些客户希望处理所有可打印媒体的情况,作为书籍和杂志的概括: 将它们与书架链接,管理其作者等。

引入可打印的媒体服务来模拟书籍、杂志常见的动作、属性是个好主意吗?

这样就可以在这种概括中引入新的印刷媒体,而无需触及链接到货架的代码?

换句话说:如何在领域驱动设计中处理继承?

【问题讨论】:

    标签: rest inheritance microservices domain-driven-design


    【解决方案1】:

    小心,域不是与资源相关的东西,它是对业务流程的建模。

    两个方向:

    1. 由于您的问题,我不太确定您是否有两个用于书籍和杂志的子域。在一个域中,您可以完美地拥有一个 Book 类和一个继承 Media 类的 Magazine 类。
    2. 您可以使用共享内核,通过它您可以共享 Book and Magazine 域可以共享的域子集 (http://ddd.fed.wiki.org/view/shared-kernel)

    更进一步,您可以阅读 Vaugh Vernon 的实施领域驱动设计的第 2 章(域、子域和有界上下文)和第 3 章(上下文映射)。

    Ps :在开发任何系统之前不要忘记与领域专家交谈(没有 DDD)。

    【讨论】:

      【解决方案2】:

      我认为创建一个新的微服务(Experience MS)是个好主意。

      使用通用域模型创建一个新的微服务,该微服务从 service Book 和 service Magazine 获取数据。这样,就不需要对现有的业务微服务做任何改动。

      根据微服务架构,微服务只能通过该微服务的 REST 端点提供。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-26
        • 2018-01-18
        • 2011-08-01
        相关资源
        最近更新 更多