基于 .NET Aspire 的云原生微服务示例应用,集成多智能体 AI 编排,完整演示 DDD、CQRS、Event Sourcing、Saga 等企业架构模式。
BookWorm 是一个面向学习与参考的云原生全栈应用,基于 .NET Aspire 构建,包含 9 个微服务(Catalog、Ordering、Basket、Rating、Chat、Finance、Notification、Scheduler、McpTools),覆盖 4 个业务域与 67 个消息的事件驱动架构。
后端架构
项目采用 DDD + 垂直切片架构(VSA)+ CQRS 组织代码,使用 Mediator.SourceGenerator(源代码生成)实现 CQRS,非 MediatR。数据一致性通过 Outbox/Inbox 模式与 Saga 模式(编排与协同两种方式)保障,并引入 Event Sourcing 存储领域事件。服务间通过 gRPC 通信,事件驱动层面使用 MassTransit + Kafka。每个微服务拥有独立 PostgreSQL 数据库,采用 snake_case 命名与 UUID v7 主键。认证授权通过 Keycloak 实现,支持 Authorization Code Flow with PKCE 与 Token Exchange,并集成 Presidio 进行 PII 检测与脱敏。
AI 能力
项目集成 text-embedding-3-large 文本嵌入与 gpt-4o-mini 聊天模型,通过 Agent Framework 实现多智能体编排,并引入 MCP(Model Context Protocol)标准化工具调用、A2A Protocol 实现智能体间通信、AG-UI Protocol 实现智能体与用户界面交互,同时包含生成式 AI 评估与智能体治理机制。
前端与测试
前端采用 Turborepo 驱动的 monorepo 架构,基于 Next.js 16 构建客户商店与管理后台,支持 WCAG 2.1 AA 无障碍标准。测试策略覆盖服务单元测试、快照测试、架构测试、k6 负载测试、前端单元与组件测试、BDD 端到端测试。
文档体系
涵盖 OpenAPI(REST 规范)、AsyncAPI(事件规范)、EventCatalog(集中式架构文档,记录 4 域 67 消息 1 业务流程)、Docusaurus(详细架构文档)及 arc42 标准。项目使用 Just 管理开发工作流,支持通过 Aspire CLI 一键部署至 Azure Container Apps。
项目结构
src/
Aspire/ — Aspire 宿主与服务默认配置
BuildingBlocks/ — 共享库(Chassis, Constants, SharedKernel)
Clients/ — 前端应用(Next.js 16 Turbo monorepo)
apps/
storefront/ — 客户端商店
backoffice/ — 管理后台
packages/ — 共享包(api-client, ui, utils, types 等)
Services/ — 微服务
Integrations/ — 集成组件(Presidio PII 检测/脱敏)
tests/ — 测试项目(含架构测试)
docs/ — 文档(EventCatalog, Docusaurus)
specs/ — 功能规格说明
快速启动
git clone git@github.com:foxminchan/BookWorm.git
cd BookWorm
just prepare
just run
前置依赖:.NET 10.0 SDK、Node.js、Docker、Bun、Pnpm、Just、Buf CLI、Aspire CLI、Azure CLI、OpenAI API Key(AI 功能必需)。
⚠️ 项目明确声明为演示用途,非生产就绪。具体业务场景(推测为在线书店/电商平台)、AI Agent 具体编排用例、A2A/AG-UI 协议实现深度、.NET 版本一致性(README 提及 10.0 SDK 但最新 Release 为 9.0)等细节待从源码进一步确认。