🏆 Wow v8.9.0 发布:荣获 KaiCode’26 优秀奖,可靠性全面进化

发布于

**Wow v8.9.0 正式发布。** 本次版本集中呈现了 Wow 在核心可靠性、事件存储、消息基础设施、BI / ClickHouse 与开发者体验上的阶段性演进。

## 🏆 荣获 KaiCode’26 优秀奖

Wow 荣获 [KaiCode’26 Excellent Award(优秀奖)](https://www.kaicode.org/2026.html)。感谢 KaiCode’26 对 Wow 的认可,也感谢每一位使用、反馈和参与项目建设的开发者。

## 🚀 v8.9.0 重点升级

### ⚡ 更快、更可靠的核心运行时

- 新增 MATCH 全文检索条件,MongoDB 与 Elasticsearch 提供对应的原生查询实现。
- 重构命令等待运行时,以 WaitPlan / WaitCoordinator / WaitHandle 取代旧 WaitStrategy 体系,完善 sent、processed、snapshot、projected、event 与 saga 等等待阶段,并修复并发、提前信号和取消清理问题。
- WebFlux 聚合追踪支持 headVersion / tailVersion / limit 窗口与流式回放,统一请求上下文、批处理、响应、错误和路由注册策略。
- 修复异步命令事件顺序、快照扫描作用域、事件 Header 隔离、异常处理器层级解析、本地等待信号路由和 reactive dispatcher 生命周期等正确性问题。
- 建立分层 benchmark、契约测试和真实场景测试体系,并优化命令函数解析、事件流重建、本地通知和 send-and-wait 快速路径。

### 🧭 更灵活的存储路由与幂等保障

- 新增聚合级存储路由,可分别为 EventStore 与 SnapshotStore 选择 MongoDB、Redis、Elasticsearch 或具名 binding。
- EventStore 统一承担 requestId 持久化校验与聚合 ID 扫描,强化命令幂等和补偿扫描能力。
- SnapshotRepository 演进为 SnapshotStore;MongoDB 增加可选的不可变历史 Snapshot Checkpoint。
- 移除 wow-r2dbc 模块与 core sharding,存储扩展边界进一步收敛。

### 📊 面向生产的 BI / ClickHouse 部署能力

- Wow BI 重构为无损脚本生成,支持 Standalone / Cluster 拓扑、参数化脚本、RAW_JSON 可恢复降级与稳定诊断。
- 引入 catalog ownership、drift 检测、非破坏性 DEPLOY、显式确认的 RESET、中断恢复与部署检查协议。
- 新增 `POST /wow/bi/script` 脚本端点与 OpenAPI 契约。

### 🛡️ 更稳健的消息与基础设施

- MessageSubscription 显式表达 named aggregates 与 receiver group,订阅语义不再隐式依赖 Reactor Context。
- Redis Streams 默认支持遗留 pending message 的有界恢复、consumer lease 与 XCLAIM。
- Kafka 加强 offset gap、prefetch、解码失败与重试策略,避免未完成消息被后续 offset 越过。
- Elasticsearch 修复分页、模板就绪、空索引、条件转换与查询契约问题。
- OpenTelemetry 对齐 Reactor subscribe / signal / cancel 生命周期与 Context 传播;指标标签稳定化并消除路由存储重复计数。

### 🌍 更完整的产品、文档与生态

- 补齐补偿任务 Dashboard、失败任务处理与资源标签能力。
- 建立并系统重构中英文 VitePress 文档、配置参考、数据访问控制与迁移指南。
- 依赖基线升级至 Spring Boot 4.1.0、Kotlin 2.4.10、JUnit 6.1.2、OpenTelemetry 1.64.0、CosId 3.2.0 与 CoCache 4.2.0。

## ⚠️ 升级前必读

1. **Redis canonical v2 是硬格式切换。** 不提供旧布局回退、双读、双写或内置迁移器;禁止新旧版本混合滚动发布。必须停写、备份、离线盘点与迁移、校验并重建 Snapshot 后再切流。
2. **R2DBC 与 core sharding 已删除。** 使用 wow-r2dbc 或旧分片 API 的应用必须先迁移到 MongoDB、Redis、Elasticsearch 或自定义 Storage binding。
3. **命令与消息 API 存在破坏性变化。** 旧 WaitStrategy / WaitingFor* / ClientCommandExchange 体系迁移到 WaitPlan 与 sendAndWait*;MessageBus.receive(Set<NamedAggregate>) 改为 receive(MessageSubscription)。
4. **旧 BI 布局不会自动迁移。** 升级前需停止旧 consumer,清理或归档旧 BI scope 后部署当前布局。RESET 是破坏性操作,必须显式确认 replayFromEarliestConfirmed=true。
5. **MongoDB 增加数据库所有权守卫。** 一个 database 只能归属一个 bounded context;历史混库和不兼容的受管索引必须在启动前迁移。
6. **存储路由不迁移已有数据。** 改变 backend 或 binding 前必须先完成事件与快照迁移;Redis pending 恢复采用 at-least-once 语义,下游处理器需要保持幂等。

## 📚 完整资料

- [Gitee v8.9.0 Release](https://gitee.com/AhooWang/Wow/releases/tag/v8.9.0)
- [v8.9.0 中文迁移指南](https://gitee.com/AhooWang/Wow/blob/v8.9.0/documentation/docs/zh/guide/migration.md)
- [BI / ClickHouse 运维指南](https://gitee.com/AhooWang/Wow/blob/v8.9.0/documentation/docs/zh/guide/bi-operations.md)

## 🎯 立即体验

Wow v8.9.0 已经就绪。欢迎升级、体验并反馈;如果 Wow 对你的项目有所帮助,欢迎前往 [Gitee](https://gitee.com/AhooWang/Wow) 点亮 Star,与我们一起推动项目持续演进。

---

原文链接:[点击查看](https://www.oschina.net/news/478452/wow-8-9-0-released)

评论

暂无评论。