Files
makemd/docs/Runtime_Architecture.md
wurenzhi 0dac26d781 feat: 添加MSW模拟服务和数据源集成
refactor: 重构页面组件移除冗余Layout组件

feat: 实现WebSocket和事件总线系统

feat: 添加队列和调度系统

docs: 更新架构文档和服务映射

style: 清理重复接口定义使用数据源

chore: 更新依赖项配置

feat: 添加运行时系统和领域引导

ci: 配置ESLint边界检查规则

build: 添加Redis和WebSocket依赖

test: 添加MSW浏览器环境入口

perf: 优化数据获取逻辑使用统一数据源

fix: 修复类型定义和状态管理问题
2026-03-19 01:39:34 +08:00

6.5 KiB
Raw Blame History

🌐 Runtime_Architecture.md运行态架构 · 可落地版)


🎯 一、设计目标

将系统从“接口驱动”升级为“事件驱动 + 自动运行系统”,实现业务闭环自动推进、可计费、可监控。


🧠 二、核心设计原则

1 事件驱动Event Driven

所有业务流转必须通过事件触发,而不是手动串流程


2 状态驱动State Driven

所有实体必须由 STATE_MACHINE 控制流转


3 服务编排Service Orchestration

所有业务逻辑必须在 Service 层执行


4 自动化优先Automation First

能自动执行的流程,禁止依赖用户点击


5 可计费Billable by Design

所有关键行为必须具备计费能力


🧩 三、Runtime 四大核心模块


1 Event System事件系统

🎯 作用

解耦模块,实现系统自动联动


📌 事件结构

interface DomainEvent {
  id: string
  type: string
  payload: any
  timestamp: number
  source: string
  merchantId?: string
}

📌 核心事件定义

// 商品
PRODUCT_CREATED
PRODUCT_UPDATED

// 订单
ORDER_CREATED
ORDER_PAID
ORDER_COMPLETED

// 库存
INVENTORY_LOW
INVENTORY_UPDATED

// 功能
FEATURE_ENABLED
FEATURE_DISABLED

// AI
AI_TASK_CREATED
AI_TASK_COMPLETED

// 广告
AD_STARTED
AD_PERFORMANCE_UPDATED

// 任务
JOB_CREATED
JOB_UPDATED
JOB_COMPLETED

// 计费
BILLING_GENERATED

📌 事件流

Controller  Service  Emit Event  EventBus  Listener  Service

📌 示例

await productService.createProduct(data)

eventBus.emit({
  type: 'PRODUCT_CREATED',
  payload: { productId },
  source: 'ProductService',
  merchantId: data.merchantId
})

2 Job / Worker System任务系统

🎯 作用

执行异步任务 & 自动推进系统


📌 任务模型

interface Job {
  id: string
  type: string
  status: 'pending' | 'running' | 'success' | 'failed'
  payload: any
  result?: any
  retryCount: number
  merchantId?: string
  priority?: number
}

📌 核心任务类型

AI_OPTIMIZE_PRODUCT
SYNC_INVENTORY
RUN_ADS
CALCULATE_PROFIT
GENERATE_BILL
UPDATE_AD_BUDGET
STOP_AD

📌 执行流程

Event  创建 Job  Worker 消费  调用 Service  更新状态  触发新 Event

📌 示例

eventBus.on('PRODUCT_CREATED', async (event) => {
  await jobService.create({
    type: 'AI_OPTIMIZE_PRODUCT',
    payload: { productId: event.payload.productId },
    merchantId: event.merchantId
  })
})

3 Scheduler调度系统

🎯 作用

周期性驱动系统(无人值守)


📌 示例调度

// 每5分钟
syncInventory()

// 每1小时
calculateROI()

// 每天
runSettlement()

📌 实现方式

node-cron / bullmq / agenda

📌 调度 → Job

cron.schedule('*/5 * * * *', async () => {
  await jobService.create({ type: 'SYNC_INVENTORY' })
})

4 State Engine状态推进器

🎯 作用

统一控制所有状态流转


📌 原则

Service 随意改状态 必须通过 State Machine


📌 示例

orderStateMachine.transition(order, 'PAY')

📌 自动推进

Worker  调用 Service  推动状态

💰 四、计费系统Billing Runtime


📊 1 计费模型

FeatureBilling
UsageBilling
ResultBilling
SubscriptionBilling

📌 2 使用量计费

UsageService.track({
  feature: 'AI_OPTIMIZE',
  usage: 1,
  merchantId,
  source: 'AI'
})

📌 3 账单生成

BillingService.generateBill(merchantId)

📌 4 收费触发点

行为 是否计费
AI优化
广告投放
自动补货
API调用

🔄 五、完整运行链路(核心)


🎯 示例:商品自动赚钱闭环

用户创建商品
 PRODUCT_CREATED

 创建 JobAI优化
 AI_TASK_COMPLETED

 自动上架
 AD_STARTED

 产生订单
 ORDER_PAID

 CALCULATE_PROFIT

 GENERATE_BILL

🎯 六、前端 Runtime 对应设计(关键)


1 Task Center必须做

字段

任务名称
状态(运行中/完成/失败)
进度
结果
触发来源

2 Event Log

时间
事件类型
来源
结果

3 Billing Timeline

时间
费用类型
金额
来源功能

4 ROI Dashboard核心

商品ID
ROI
点击数
订单数
成本
收入

🧱 七、Service 分层强化(必须执行)


强制规则

Controller  不允许写逻辑
Service  唯一逻辑入口
Worker  调用 Service

🔐 八、运行安全设计


必须补

1 幂等性

jobId: productId + type

2 重试机制

失败  retry 3 

3 日志系统

Event Log + Job Log + Error Log

🚀 九、实施步骤


1 新建模块

/src/runtime
  ├── eventBus.ts
  ├── jobQueue.ts
  ├── worker.ts
  ├── scheduler.ts
  ├── jobProcessor.ts

2 实现 BullMQ 分布式队列

/src/runtime/queue
  ├── index.ts
  ├── worker.ts
  ├── processor.ts
  ├── priority.ts

3 实现 WebSocket 实时推送

/src/runtime/ws
  ├── server.ts
  ├── client.ts
  ├── broadcast.ts

4 实现计费系统

/src/services
  ├── UsageService.ts
  ├── BillingService.ts

5 实现 AI 策略系统

/src/runtime/strategy
  ├── engine.ts
  ├── roi.ts
  ├── ad.ts

6 前端实现

/pages/TaskCenter/index.tsx
/pages/EventLog/index.tsx
/pages/Billing/index.tsx
/pages/ROIDashboard/index.tsx

🧠 最终结论

你现在系统的阶段是:

架构完成 Runtime 未建立


🔥 一句话

没有 Runtime你的系统只是“能用” 有 Runtime才是“能赚钱 + 能自动跑”的系统。