领域驱动架构是针对领域驱动设计建立的一种架构风格,它以领域为核心驱动力,以业务能力为核心关注点建立目标系统的架构解决方案,核心元模型为系统上下文与限界上下文,并以它们为边界形成各自的架构模式:系统分层架构模式与菱形对称架构模式。
领域驱动架构风格充分利用了限界上下文的自治性与开放性。
当限界上下文化身为运行在进程内部的库时,即演变为单体架构模式;
当限界上下文根据不同的业务场景定义为不同的通信边界时,即演变为面向服务架构模式(或者认为是单体架构与微服务架构组成的混合架构);
当限界上下文的通信边界被界定为进程间通信时,即演变为微服务架构模式;
当限界上下文之间的协作采用发布者/订阅者映射模式时,即演变为事件驱动架构模式。
显然,支撑领域驱动架构风格演变能力的关键要素,正是领域驱动战略设计的核心模式——限界上下文。
领域驱动架构风格充分利用了系统上下文对解空间的边界定义,并在约束一致性的同时,保证了设计的实用性。
系统分层架构对限界上下文进行了界定与规范,使得它们能够采取一致的方式提供业务能力;同时,根据限界上下文所属子领域的不同,结合具体的业务场景降低对限界上下文的设计要求,不再一视同仁地严格要求运用菱形对称架构,对于基础层的限界上下文,甚至可以不采用领域建模。
根据业务能力进行纵向切分的限界上下文未必满足面向前端的服务请求,系统分层架构引入边缘层来封装和聚合各个自治的业务能力,同时为前端提供不同的展现模型。
无论是单体架构模式、面向服务架构模式还是微服务架构模式,实则都可以遵循系统分层架构,它们之间的区别仅在于限界上下文的通信边界,如此就可以让遵循领域驱动设计的系统架构做到业务架构与应用架构、数据架构的统一,并保证这三者与技术架构的隔离。