Ahoo Wang

系统架构师 · 开源作者

Ahoo Wang

让复杂系统,有清晰的边界。

我设计 AI 智能体平台与分布式系统,也构建支撑它们的开源基础设施。我关心系统能否运行,更关心它为什么这样运行。

正在关注智能体编排引擎 · 分布式系统 · 领域驱动设计与事件溯源

写信给我GitHub

wow · Wow 写入链路
Wow 写入链路命令到达聚合根,聚合根做出决策并将领域事件追加到事件存储;事件总线再把事件分发给投影、Saga 与快照。sendeventevent busCommandCommandGatewayAggregateonCommand()Event Storeappend()Projectionread modelSaga@StatelessSagaSnapshotSnapshotStoregiven → whenCommand → expectEventTypeWow 写入链路命令到达聚合根,聚合根做出决策并将领域事件追加到事件存储;事件总线再把事件分发给投影、Saga 与快照。sendeventevent busCommandCommandGatewayAggregateonCommand()Event Storeappend()Projectionread modelSaga@StatelessSagaSnapshotSnapshotStoregiven → whenCommand → expectEventType
个开源项目
16
GitHub Stars
3.0k
近 30 天活跃
14/16

01 / 代表作品

代表作品

三个项目,以及它们背后的设计判断。

  1. 01github.com/Ahoo-Wang/Wow★ 307

    Wow

    让领域模型成为系统的核心。

    CartSpec.ktkotlin
    class CartSpec : AggregateSpec<Cart, CartState>(
        {
            on {
                val ownerId = generateGlobalId()
                val addCartItem = AddCartItem(
                    productId = "productId",
                    quantity = 1,
                )
                givenOwnerId(ownerId)
                whenCommand(addCartItem) {
                    expectNoError()
                    expectEventType(CartItemAdded::class)
                    expectState {
                        items.assert().hasSize(1)
                    }
                    // …
    摘自 Wow 示例中的真实聚合测试
    问题
    复杂业务规则需要可追溯的状态变化,以及跨聚合的流程协作。
    设计
    将每次写入建模为 命令 → 领域决策 → 事件 → 投影,并以 Given → When → Expect 规范验证行为。
    边界
    适用于业务规则与历史追溯足以支撑事件溯源成本的系统;简单 CRUD 未必需要。
  2. 02github.com/Ahoo-Wang/CosId★ 653

    CosId

    没有协调瓶颈的全局唯一 ID。

    SegmentChainId · 号段链lock-free
    SegmentChainId · 号段链ID 从链头号段以无锁 CAS 方式分配;其后是已预取的号段,长度不低于安全距离。PrefetchWorker 从 IdSegmentDistributor(Redis、JDBC、ZooKeeper 或 MongoDB)申请新号段追加到链尾:饥饿时预取距离加倍,链充足时减半。generate()vv+1v+2+headsafeDistance ≥ 2appendPrefetchWorker饥饿 ×2 · 充足 ÷2IdSegmentDistributorRedis · JDBC · ZooKeeper · MongoDB
    SnowflakeId 位布局64 bit

    64 位 ID:1 位不用的符号位、41 位毫秒时间戳(约 69 年)、10 位机器号(1024 个节点)与 12 位序列号(每毫秒 4096 个 ID)。

    ops/s · SegmentChainId
    127M+
    ops/s · CosIdGenerator
    15.6M
    每节点 ID/秒 · Snowflake
    4.096M

    JMH 基准测试,CosId 文档

    问题
    分布式 ID 生成需要同时处理机器号分配、时钟回拨与协调开销。
    设计
    两类生成器。SegmentChainId 把号段串成无锁的号段链,由 PrefetchWorker 维持安全距离:消费过快(饥饿)时加倍预取,链已充足时减半回收。SnowflakeId 则补齐机器号自动分配与时钟回拨处理。
    边界
    按部署环境选择算法与协调存储;组件基准不等于业务系统的吞吐承诺。
  3. 03github.com/Ahoo-Wang/CoSky★ 95

    CoSky

    不增加运维负担的服务治理。

    CoSky 读取链路0 RTT
    CoSky 读取链路应用从进程内缓存读取配置与实例;Redis Pub/Sub 把变更推送进缓存,只有写入和缓存未命中才经过网络访问 Redis。applicationget()local cachein-processRedissource of truthhot path · no networkPub/Subwrite / miss
    ops/s · 读取配置(本地缓存)
    706.7M
    ops/s · 读取配置(Redis)
    58.8k
    热路径提速
    ≈12,000×

    JMH,8 线程,Apple M4 Pro,CoSky 6.0.0

    问题
    服务需要注册发现与共享配置,又不想再运维一套沉重的集群。
    设计
    基于 Redis:进程内缓存配合 Pub/Sub 实时更新,并接入 Spring Cloud。
    边界
    适用于已采用 Redis 的基础设施;可用性取决于所选的 Redis 部署方式。

02 / 工作方式

从问题出发,而不是从工具出发。

我先读懂问题背后的结构,再决定用什么设计与技术去表达它。开源让这些判断可以被检验、被讨论、被继续改进。

  1. 01

    让意图可见

    从领域出发,用显式、可测试的模型表达业务意图。

  2. 02

    给变化留出边界

    把职责与依赖说清楚,让系统演进时仍然可理解、可验证。

  3. 03

    让证据支持判断

    用代码、测试与基准说明设计,也明确它的成本与适用边界。

03 / 开源项目

在开放中构建

不同的问题,共同的工程追求。

架构框架03

  • Wow

    基于 DDD、CQRS 与事件溯源的响应式框架——领域模型即服务。

    ● 最近提交 2026-11

    ★ 307
  • CoSec

    基于 RBAC 与策略的多租户响应式安全框架。

    ● 最近提交 2026-11

    ★ 45
  • wow-project-template

    基于 Wow 快速构建领域驱动设计项目的模板。

    ● 最近提交 2026-11

    ★ 25

分布式基础设施04

  • CosId

    通用、灵活、高性能的分布式 ID 生成器。

    ● 最近提交 2026-11

    ★ 653
  • CoSky

    基于 Redis 的轻量级服务注册发现与配置中心。

    ● 最近提交 2026-11

    ★ 95
  • Simba

    面向协调与调度的分布式锁服务。

    ● 最近提交 2026-11

    ★ 35
  • CoCache

    二级分布式一致性缓存框架。

    ● 最近提交 2026-11

    ★ 17

AI 与开发工具07

  • GodeX

    兼容 OpenAI Responses API 的网关,让每个模型都成为 Codex 引擎。

    ● 最近提交 2026-10

    ★ 25
  • fetcher

    基于 Fetch 的 HTTP 客户端生态,原生支持 LLM 流式 API 与 React。

    ● 最近提交 2026-11

    ★ 15
  • Ahoo Skills

    从开源项目同步的 Agent Skills,按项目提供 Codex 与 Claude Code 插件。

    ● 最近提交 2026-11

  • Cobal

    集成 Resilience4j 断路器的 LLM 客户端负载均衡。

    ● 最近提交 2026-11

  • CoApi

    为 Spring 6 提供零样板的 HTTP 客户端定义与自动配置。

    ● 最近提交 2026-11

    ★ 10
  • FluentAssert

    面向 JDK 类型的 Kotlin 流畅断言。

    ● 最近提交 2026-11

  • elasticsearch-script-velocity

    为 Elasticsearch 脚本引入 Velocity 模板语言。

    ● 最近提交 2026-08

.NET02

  • SmartSql

    支持缓存与读写分离的高性能 C# ORM。

    ● 最近提交 2026-11

    ★ 1.1k
  • SmartCode

    由结构化数据源驱动的代码生成平台。

    ● 最近提交 2023-12

    ★ 577

GitHub 上的全部仓库

04 / 联系

让好的问题,遇到认真的讨论。

系统设计、智能体架构、开源实践,或一个棘手的工程问题——都欢迎来信。