领域驱动架构风格

简介: 领域驱动架构风格

领域驱动架构是针对领域驱动设计建立的一种架构风格,它以领域为核心驱动力,以业务能力为核心关注点建立目标系统的架构解决方案,核心元模型为系统上下文与限界上下文,并以它们为边界形成各自的架构模式:系统分层架构模式与菱形对称架构模式。


image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png


领域驱动架构风格充分利用了限界上下文的自治性与开放性。


当限界上下文化身为运行在进程内部的库时,即演变为单体架构模式;


当限界上下文根据不同的业务场景定义为不同的通信边界时,即演变为面向服务架构模式(或者认为是单体架构与微服务架构组成的混合架构);

当限界上下文的通信边界被界定为进程间通信时,即演变为微服务架构模式;


当限界上下文之间的协作采用发布者/订阅者映射模式时,即演变为事件驱动架构模式。


显然,支撑领域驱动架构风格演变能力的关键要素,正是领域驱动战略设计的核心模式——限界上下文。


领域驱动架构风格充分利用了系统上下文对解空间的边界定义,并在约束一致性的同时,保证了设计的实用性。


系统分层架构对限界上下文进行了界定与规范,使得它们能够采取一致的方式提供业务能力;同时,根据限界上下文所属子领域的不同,结合具体的业务场景降低对限界上下文的设计要求,不再一视同仁地严格要求运用菱形对称架构,对于基础层的限界上下文,甚至可以不采用领域建模。


根据业务能力进行纵向切分的限界上下文未必满足面向前端的服务请求,系统分层架构引入边缘层来封装和聚合各个自治的业务能力,同时为前端提供不同的展现模型。


无论是单体架构模式、面向服务架构模式还是微服务架构模式,实则都可以遵循系统分层架构,它们之间的区别仅在于限界上下文的通信边界,如此就可以让遵循领域驱动设计的系统架构做到业务架构与应用架构、数据架构的统一,并保证这三者与技术架构的隔离。

相关文章
|
17天前
|
消息中间件 监控 NoSQL
驱动系统架构
【10月更文挑战第29天】
21 2
|
1月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
3月前
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
63 0
|
3月前
|
机器学习/深度学习 并行计算 算法
深度学习驱动的声音生成:FunAudioLLM的创新架构
【8月更文第28天】随着深度学习技术的发展,声音合成的质量得到了显著提升。本文将介绍 FunAudioLLM —— 一种基于深度学习的声音生成框架,旨在创造高质量、自然流畅的声音内容。我们将探讨 FunAudioLLM 的核心技术、训练流程及其实现细节,并提供一些示例代码。
62 0
|
3月前
|
缓存 前端开发 项目管理
业务驱动的应用架构设计
业务驱动的应用架构设计
46 1
|
4月前
|
消息中间件 设计模式 Java
Java中的消息驱动架构设计
Java中的消息驱动架构设计
|
4月前
|
消息中间件 监控 Java
使用Kafka实现分布式事件驱动架构
使用Kafka实现分布式事件驱动架构
|
3月前
|
存储 安全 数据管理
业务驱动的数据架构设计
业务驱动的数据架构设计
43 0
|
4月前
|
敏捷开发 Java 测试技术
「架构」模型驱动架构设计方法及其运用
本文探讨了MDA在软件开发中的应用,从需求分析到测试,使用UML建模功能需求,通过PIM设计架构,自动生成代码以减少错误。MDA提升了可维护性、可扩展性和可移植性,通过工具如Enterprise Architect和Eclipse MDT支持自动化转换。虽然有挑战,如模型创建和平台转换,但结合敏捷方法和适当工具能有效解决,从而提高开发效率和软件质量。
494 0
「架构」模型驱动架构设计方法及其运用
|
4月前
|
中间件 BI 测试技术
【实践篇】领域驱动设计:DDD工程参考架构
领域驱动设计(DDD)参考架构旨在为团队提供DDD实践的起点,强调业务与技术的分离,考虑多种架构风格如分层、六边形等。它包括多限界上下文结构,每个上下文内有应用层(不含领域逻辑)、领域层(含领域模型和事件)和网关层。接入层负责外部请求的处理,业务层协调不同上下文。组件包括Start(启动)、Common(通用)、API、Facade、Application Service、External API、Query、Domain和Gateway,各组件有明确的职责和依赖关系,如Gateway处理技术细节并作为系统与外部的接口。架构设计是多因素权衡,适应实际工程需求。
203 0
下一篇
无影云桌面