
阅读《2024 中国开源开发者报告》赢大奖,扫码申请享特权

更新内容
- 特性(core):添加资源所有者支持
- 特性(exception):添加 ILLEGAL_ACCESS_OWNER_AGGREGATE 错误码映射
- 特性(webflux):添加所有者聚合前置条件检查
- 特性(elasticsearch):在事件流和快照模板中添加 ownerId 字段
- 特性(api):调整默认所有者值
- 特性(api):为聚合路由添加资源名称自定义功能
- 特性(mongodb):添加所有者 ID 索引并移除聚合 ID 集合
- 特性(api):为命令路由添加 appendOwnerPath 选项
- 特性(core):为命令添加所有者 ID 支持
- 特性(openapi):为 Swagger 添加空类转换器
- 重构(webflux):移除未使用的 ID 查询聚合功能
- 重构(webflux):通用化查询处理函数
- 重构(query):提取租户 ID 处理逻辑
- 重构(openapi):将 COMMAND_OWNER_PARAMETER 替换为 OWNER_ID_PARAMETER 引用
- 重构(openapi):提取 CommandRequestParameters 和 CommandResponses
- 重构(api):更新 CommandRoute 注解并弃用一个属性
- 重构(api):移除 CommandRoute.ignoreAggregateNamePrefix
- 测试(aggregate):添加所有者 ID 支持并重构测试阶段
- 文档(guide):在查询文档中添加 OWNER_ID 操作符
- 文档(guide):更新 OpenAPI 规范文档
- 依赖: 更新依赖项 me.ahoo.coapi:coapi-bom 到 v1.9.5
- 依赖:更新依赖项 me.ahoo.cosid:cosid-bom 到 v2.10.3
- 依赖:更新依赖项 jasmine-core 到 ~5.6.0
- 依赖:更新 angular monorepo 到 v19.1.6
- 依赖:更新 angular-cli monorepo 到 v19.1.7
简介
Wow 是一个基于领域驱动设计和事件溯源的现代响应式 CQRS 微服务开发框架,历经多年生产环境验证。
旨在帮助开发者构建现代化的、高性能且易于维护的微服务应用程序,充分发挥领域驱动设计和事件溯源等模式优势的同时降低应用的复杂性以及实践成本。
值得一提的是,领域驱动设计和事件溯源并非微服务架构的专属,Wow 框架不仅适用于微服务开发,同样也可用于构建基于领域驱动设计的单体应用程序。
快速开始
使用 Wow 项目模板快速创建基于 Wow 框架的 DDD 项目
特性概览
架构图
商业智能是企业决策的关键支持,而数据则是商业智能的分析原料。业务数据越为丰富有价值,商业智能的分析结果越准确,决策也就更加可靠。
与传统架构有着显著差异,Wow 提供了实时聚合根状态事件(StateEvent
)和聚合命令(Command
)作为数据分析的数据源,同时极大降低了实时 ETL(Extract
, Transform
, Load
)的难度。
在传统架构中,实现实时 ETL 通常需要经过繁琐的流程,包括 DB->CDC->Process->DB
,而在 Wow 框架中,仅需一段简单的 SQL 脚本即可完成这一过程。
另外,在传统架构中,使用 CDC(MySql Binlog
)数据仅记录数据的变化,缺乏明确的业务语义。进行业务分析时,需要基于数据状态的变化推断出业务语义,这往往需要进行大量的数据处理。 相较之下,Wow 框架直接提供了聚合根状态事件和聚合命令作为数据分析的数据源,极大降低了数据处理的难度。
Wow 提供的实时同步机制将数据实时同步至数据仓库(ClickHouse),为实时数据分析提供了极大的便利。这种方法为商业智能提供了强有力的支持,构建了一个实时数据分析系统,使决策制定能够基于及时而准确的信息。
你可以在这里了解更多关于 Wow 商业智能。
操作审计
操作审计是企业中保障安全性和合规性的重要组成部分,同时也是对系统操作进行监控和追踪的关键手段。Wow 框架在这方面为企业带来了显著的优势。
通过记录聚合命令(Command
)作为操作审计的数据源,Wow 框架能够详细追踪系统中的各种操作。 这些记录不仅包含了操作本身的内容,还涵盖了操作触发的副作用(领域事件),为审计提供了更为全面和准确的数据基础。
相较于传统审计方法,Wow 框架的操作审计的数据源具备更加明确的业务语义,以及操作后产生的明确领域事件。
此外,Wow 框架提供的实时数据同步机制也为操作审计带来了便利,确保了审计数据的及时性和一致性。
了解更多关于 Wow 操作审计。
还没有评论,来说两句吧...