🔥 模型即办事 - Wow 框架 v6.9.5 宣布!🏗️

Wow : 基于 DDD & EventSourcing 的现代响应式 CQRS 架构微服务开发框架 领域驱动 | 事件驱动 | 测试驱动 | 声明式设计 | 响应式编程 | 命令查询职责分离 | 事件溯源 中文文档 | English Document Wow v6.9.5 发布...

应用介绍

Wow:基于 DDD & EventSourcing 的现代响应式 CQRS 架构微办事开辟框架

Wow : 基于 DDD & EventSourcing 的现代响应式 CQRS 架构微办事开辟框架

范畴驱动 | 事宜驱动 | 测试驱动 | 声明式设计 | 响应式编程 | 敕令查询职责分别 | 事宜溯源

中文文档 | English Document

Wow v6.9.5 宣布日记:架构焕新,优雅进级

我们很高兴地宣布 Wow v6.9.5 正式宣布!🎊 本次版本聚焦于 核心架构的清楚化重构  优雅封闭才能 的周全晋升,旨在为你的应用带来更结实、更易保护的底层支撑。同时,我们更新了大年夜量依附,确保框架始终站在技巧前沿。

急速体验,感触感染由内而外的焕新与精进!

🚀 核心亮点:架构重塑与优雅停机

本次更新的重中之重是对核心分发器(Dispatcher)架构进行了一系列精心重构,使其设计更清楚、职责更明白。

  • 包构造优化:我们对快照分发器、事宜分发器和敕令分发器的包构造进行了体系性的从新组织,并移除了不再应用的接口和抽象类。这将使你的项目依附更清楚,代码导航更直不雅。
  • 生命周期同一:核心办法名迎来了更贴切的变革。我们将 run()  close() 分别改名为 start()  stopGracefully(),更直不雅地表达了组件的启动与优雅停止的生命周期。
  • 引入优雅封闭体系:我们正式引入了 GracefullyClosable 接口,并为核心组件(如聚合分发器)实现了完全的优雅封闭机制。这意味着你的应用在停止时,可以或许更腻滑地处理待办义务,确保数据一致性和办事稳定性,是临盆情况靠得住性的重要基石。
  • 加强的过滤器机制:在敕令处理范畴,我们引入了新的 CommandFilter 接口,并为 MessageFunctionRegistrar 添加了过滤办法,为你供给更强大年夜、更灵活的消息处理流程定制才能。

✨ 功能加强与体验优化

除了底层重构,我们也带来了一些实用的新功能和改进:

  • 序列化助手:为序列化模块新增了 toJsonNode 扩大函数,让你能更便捷地将对象转换为 JsonNode,简化了序列化相干的操作。
  • 调试体验进级:在补偿事务的仪表板中,我们加强了缺点详情视图,如今支撑全屏编辑器,让你能更舒适、更清楚地查看和分析缺点客栈信息。
  • 前端交互优化:在治理界面中,我们将 FailedView 的查询钩子从 useFetcherPagedQuery 调换为 useDebouncedFetcherQuery,晋升了列表搜刮的响应效力和用户体验。
  • 验证逻辑修复:修改了 Kotlin Schema 验证中可为空(nullable)类型的检查逻辑,确保了类型验证的精确性。

📦 依附周全更新

总结来说,v6.9.5 是一个致力于“强基固本”的版本。 它没有增长目眩纷乱的新特点,而是沉下心来,打磨核心架构,加强体系的靠得住性与可保护性。特别是优雅封闭功能的完美,是高可用办事弗成或缺的一环。

我们推荐所有效户进级到此版本,以获得更清楚的项目构造和更稳定的运行时体验。

感激每一位供献者和用户!🚀

Wow 是一个基于范畴驱动设计和事宜溯源的现代响应式 CQRS 微办事开辟框架,历经多年临盆情况验证。

旨在赞助开辟者构建现代化的、高机能且易于保护的微办事应用法度榜样,充分发挥范畴驱动设计和事宜溯源等模式优势的同时降低应用的复杂性以及实践成本。

Event-Compensation-Dashboard

值得一提的是,范畴驱动设计和事宜溯源并非微办事架构的专属,Wow 框架不仅实用于微办事开辟,同样也可用于构建基于范畴驱动设计的单体应用法度榜样。

快速开端

应用 Wow 项目模板快速创建基于 Wow 框架的 DDD 项目

特点概览

Wow-Features

架构图

Wow-Architecture

敕令处理传播链

Wow-WaitingForChain

背景

跟着营业的成长和复杂性的增长,传统的架构和开辟方法逐渐显露出瓶颈。范畴驱动设计事宜溯源等理念在进步体系设计的灵活性和可保护性方面表示出色,但在实践中经常须要面对复杂性和进修曲线的挑衅。

Wow 框架的目标是以简单易用的方法将范畴驱动设计和事宜溯源等理念融入到微办事应用开辟中,降低开辟者的进修成本,进步开辟效力。 经由过程供给现代响应式的 CQRS 架构和相干组件,Wow 框架旨在闪开辟者更专注于营业逻辑的实现,而不必过多关怀底层技巧细节。

经由多年的实践和赓续的演进,Wow 框架在临盆情况中获得了验证,积聚了丰富的经验。这些经验和反馈不仅丰富了框架的功能和机能,也为持续的改进和优化供给了宝贵的指导。

对于开辟者而言,Wow 框架意味着什么?

CRUD工程师的竞争力和可替代性可想而知,这或许是为何会有 35 岁效应,企业显然更偏向于招募没有太多生活羁绊、加倍便宜的 25 CRUD工程师。

营业价值

软件体系的核心价值表如今营业价值上,研发人员不该只存眷技巧实现上,而是应当更多地存眷营业价值的实现。 这个中的好处显而易见,当你开辟完一个营业体系之后,你将变成一个营业专家,甚至比跟你合作的范畴专家还要专业,因为你须要洞察营业细节。

应用 Wow 框架,意味着你将存眷点放在环绕范畴模型设计上,与营业专家一路摸索营业范畴,而不是存眷于技巧实现上。 你仅需编写范畴模型,即可完成办事开辟,Wow 框架主动为你预备好 OpenAPI 接口。

跟着营业的成长,你须要开端思虑体系的机能和伸缩性问题。 在传统架构中,这牵扯到数据库关系模式、分片规矩等复杂问题,同时你还须要处理因数据库分片导致的跨分片事务问题。 这时,你不得不修改你的营业代码,以适应程度拆分后的数据库架构。

然而,假如你选择应用 Wow 框架,你将不再须要过多存眷数据库关系模式、分片规矩等问题。你的营业代码无需变革,体系可以或许轻松实现程度伸缩。

你可以在这里懂得更多关于 Wow 框架的机能。

读写分别与同步延迟

应用 Wow 框架,你可以经由过程时待 PROJECTED 旌旗灯号完成,然后再将成果返回给用户,以更为优雅和高效的方法处理数据同步延迟的问题。

读写分别是一种极为广泛的机能优化架构模式。 然而,同步延迟问题常伴随而来,事务履行成功后写库落库成功,但读库同步延迟,用户刷新页面后无法获取最新数据,从而对用户的体验产生影响。例如:

  • 用户提议下单事务,写库履行成功,但因为某种原因,读库同步延迟,用户刷新页面后发明订单未成功创建。
  • 商家编辑完商品后,同步到 Elasticsearch 索引库,但因为某种原因,同步延迟,导致商家刷新页面后搜刮不到该商品。

平日,大年夜家采取最简便的办法,等待1秒后刷新页面。 固然这种方法能解决大年夜多半数据同步延迟的问题,但效力不敷高。 因为大年夜多半情况下,同步在100毫秒内就已完成,残剩的900毫秒成了浪费。 然而,有时1秒无法完成同步,这就导致用户获取的数据变得无效

我曾告诫我的团队:假如我们过于依附数据驱动设计而忽视范畴驱动设计,我们最终将沦为CRUD工程师。

Wow-WaitingForStage

工程质量

单位测试是确保代码质量且相符预期营业需求的重要手段,但在传统架构中,单位测试往往是一项相当艰苦的义务,因为你须要推敲数据库连接、事务治理、数据清理等问题。

应用 Wow 框架,你将会发明基于 Given->When->Expect 模式的测试套件,使得单位测试变得异常简单。 你只需存眷范畴模型是否相符预期,而无需为数据库连接等问题懊末路。

在实际应用中,我们将范畴模型的单位测试覆盖率下限阈值设置为 85%,也是可以轻松实现的。

在没有克意请求的情况下,开辟人员甚至自发地将覆盖率晋升至 95%

是以,每次提交卸码都变得轻松安闲,因为你确信你的代码经由了充分的测试,并且真正意义上从单位测试中获得了收益。

在研发同级其余项目中,我们的测试团队在体系 API 测试中发明,基于 Wow 框架的项目,其 BUG 数仅为传统架构项目标 1/3

你可以在这里懂得更多关于 Wow 单位测试套件。

对于企业而言,Wow 框架意味着什么?

贸易智能

贸易智能是企业决定计划的关键支撑,而数据则是贸易智能的分析原料。营业数据越为丰富有价值,贸易智能的分析成果越精确,决定计划也就加倍靠得住。

与传统架构有着明显差别,Wow 供给了及时聚合根状况事宜(StateEvent)和聚合敕令(Command)作为数据分析的数据源,同时极大年夜降低了及时 ETLExtract, Transform, Load)的难度。

在传统架构中,实现及时 ETL 平日须要经由繁琐的流程,包含 DB->CDC->Process->DB,而在 Wow 框架中,仅需一段简单的 SQL 脚本即可完成这一过程。

别的,在传统架构中,应用 CDCMySql Binlog)数据仅记录数据的变更,缺乏明白的营业语义。进行营业分析时,须要基于数据状况的变更揣摸出营业语义,这往往须要进行大年夜量的数据处理。 相较之下,Wow 框架直接供给了聚合根状况事宜和聚合敕令作为数据分析的数据源,极大年夜降低了数据处理的难度。

懂得更多关于 Wow(一个现代化的范畴驱动设计 + CQRS + 事宜溯源框架)的信息,请拜访项目主页:https://wow.ahoo.me

简介

Wow 供给的及时同步机制将数据及时同步至数据仓库(ClickHouse),为及时数据分析供给了极大年夜的便利。这种办法为贸易智能供给了强有力的支撑,构建了一个及时数据分析体系,使决定计划制订可以或许基于及时而精确的信息。

你可以在这里懂得更多关于 Wow 贸易智能。

操作审计

操作审计是企业中保障安然性和合规性的重要构成部分,同时也是对体系操作进行监控和追踪的关键手段。Wow 框架在这方面为企业带来了明显的优势。

经由过程记录聚合敕令(Command)作为操作审计的数据源,Wow 框架可以或许具体追踪体系中的各类操作。 这些记录不仅包含了操作本身的内容,还涵盖了操作触发的副感化(范畴事宜),为审计供给了更为周全和精确的数据基本。

相较于传统审计办法,Wow 框架的操作审计的数据源具备加倍明白的营业语义,以及操作后产生的明白范畴事宜。

此外,Wow 框架供给的及时数据同步机制也为操作审计带来了便利,确保了审计数据的及时性和一致性。

懂得更多关于 Wow 操作审计。

事宜补偿

事宜补偿在事宜驱动架构中的感化是处理和恢复因为事宜处理掉败而导致的数据不一致性或缺点状况。 当体系中的某个事宜处理掉败时,event compensation 机制会介入并履行响应的补偿操作,以确保体系状况得以修复并保持一致性。 这个机制有助于保障体系的靠得住性和稳定性,尤其是在复杂的分布式体系中,个中事宜可能在多个组件或办事之间传递。 经由过程 event compensation,体系可以更好地处理故障和异常情况,防止缺点状况的传播,并最终确保体系可以或许从掉败中恢复并持续正常运行。

事宜补偿模块供给了可视化的事宜补偿控制台和主动补偿机制,确保体系数据的最终一致性。

履行时序图

  • 订阅者办事:
    • 订阅范畴事宜,履行营业逻辑。
    • 在履行掉败时,发送履行掉败记录。
    • 在履行成功时,发送履行成功记录。
  • 控制台:
    • 分布式补偿调剂器: 准时检查待补偿事宜并履行预备补偿操作。
    • 通知: 在产生履行掉败异常时,发送通知消息。
  • 开辟者:
    • 监控: 监控补偿事宜,履行重试操作以从新触发补偿逻辑,或标记不再须要的补偿事宜。
    • 接收通知: 接收履行掉败通知,快速定位到异常,修复 BUG。
    • 修复 BUG: 当产生无法主动修复的异常时,开辟者可以经由过程控制台快速定位到异常,修复 BUG,并从新提议重试。

Event-Compensation

控制台

事宜补偿控制台的强大年夜功能不仅包含分布式准时调剂主动补偿,还搭载直不雅可视化的补偿事宜治理功能、事宜补偿通知(企业微信)以及 OpenAPI 接口。

经由过程分布式准时主动补偿,Wow 框架智能地解决了体系数据最终一致性的难题,摆脱了手动补偿的繁琐过程。 而可视化的补偿事宜治理功能为开辟者供给了巨大年夜便利,轻松监控和处理补偿事宜。

在控制台上,开辟者能轻松进行特定状况的补偿事宜查询,履行重试操作以从新触发补偿逻辑,或删除不再须要的补偿事宜,供给了灵活而直不雅的操作手段。

这一设计不仅加强了体系的稳健性和可保护性,同时也闪开辟者更轻易处理复杂的分布式事务流程,确保体系在异常情况下可以或许精确而可控地进行补偿操作。

在《实现范畴驱动设计》一书中,作者 Vaughn Vernon 提到:核心域才值得投入精力进行范畴驱动设计, 但假如你应用 Wow 框架,你将发明,因为低廉开辟成本、快速的开辟效力,即使是次要的支撑子域也值得 DDD

机能与伸缩性

事宜补偿控制台 也是基于 Wow 框架设计开辟的。可以作为 Wow 框架的参考实现来进修。

UI

Event-Compensation-Dashboard

Event-Compensation-Dashboard

我们持续跟进生态成长,将核心依附更新至最新稳定版本,为你带来更好的机能、安然性和兼容性:

  • Spring Boot: 进级至 v3.5.9
  • Kotlin Symbol Processing (KSP): 进级至 v2.3.4
  • OpenTelemetry: 进级至 v1.57.0 (API) 和 v2.23.0 (Instrumentation)。
  • JUnit: 测试框架进级至 v6
  • 前端对象链:更新了 pnpmReactTailwindCSSMermaid 以及内部 @ahoo-wang/fetcher 系列依附至最新版本,保持开辟对象链的活力。

🐞 其他改进与修复

  • 优化了日记记录,移除了未应用的重试策略相干日记。
  • 更新了测试中 Mock 的应用方法,确保测试的靠得住性。
  • 仪表板资本加载方法优化,改用资本加载器。
  • 清理了未应用的 UI 组件。

Event-Compensation-Dashboard

点赞(0) 打赏

立即下载

相关下载

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部