Skip to content

Pragmatic DDD以"务实"为哲学的轻量级 DDD 框架

不套用教条,只交付可落地的领域建模、规则校验与可靠事件能力 —— 核心库零业务侵入、SPI 驱动

Pragmatic DDD

为什么是 Pragmatic DDD

Pragmatic DDD 选择了一条更底层的路——纯 Java、SPI 驱动、不绑定任何框架。核心模块仅依赖 Lombok(provided),所有基础设施能力(事件管理、Outbox 存储、ID 分配、配置源、Topic 解析、序列化)全部定义为以 I 开头的端口接口,实现推迟到独立的集成包。这让框架可被任意 Java 项目引用,不引入任何传递依赖冲突,也不强迫团队接受框架约定。

与 Spring Modulith、Axon Framework、COLA 等业界框架相比,Pragmatic DDD 在几个关键维度上具备差异化价值:

  • 规则引擎(业界独有):双参数校验(新旧模型对比)、消息码注册表自动扫描、运维级 + 业务级两级动态激活,把"校验"提升为企业级不变量守护,而非简单的 Validator 接口。
  • 事件依赖图:订阅者间的执行顺序用有向图 + 拓扑排序做偏序声明(支持循环检测、可并行),比 Spring @Order 的全序排列更精确、更健壮。
  • 防腐层双模式:组合式 ExternalCall 与继承式 Abstract*Gateway 并存,配合声明式外部依赖描述,系统化隔离外部系统。
  • 号段 ID 生成:内建完整的 Leaf-Segment 模式(Long / String 双类型、多业务隔离),填补了 DDD 框架在基础设施层面的常见空白。

更多设计理念与决策背景,请参阅 设计理念

快速导航

  • 指南:框架概览、设计理念、快速开始、推荐项目结构
  • 完整示例(Order Example):Docker 一键跑通 MySQL + RocketMQ + ES 全链路(30 分钟),支持已有环境单独初始化
  • 核心概念:领域建模、领域服务、领域事件、业务规则、应用服务、仓储、变更追踪、防腐层、配置体系、对外广播
  • 集成:MyBatis 集成、RocketMQ 集成
  • 最佳实践:聚合目录落地骨架、聚合设计原则、领域服务落地模式、应用层落地模式、仓储设计、投影读模型、配置装配、事件建模
  • 文章:围绕 DDD 落地与框架设计的长文,讲清「为什么这么做」——如落地 DDD 的真正第一步,不是画 ER 图
  • 参考:API 速查索引、配置项参考