业务架构说明(Business Architecture Specification - BAS)
文档编号:DOC-A07 / BAS
版本:V1.0
创建日期:2026-08-21
维护人:TL / DT
关联文档:PJM §五 完整性核查、DIS-D V1.0、GLY V4.7
一、文档定位与目标
1.1 为什么需要这份文档
随着平台从「筹备期前期」进入「试运营」和「扩张期」,业务领域会持续演进。如果没有一份权威的业务架构基线:
- 团队讨论时,每个人对「服务边界」「子域归属」「协作契约」的理解可能不一致
- AI 深化设计时,不同轮次可能给出相互冲突的领域划分
- 后续运营迭代时,跨服务的耦合会逐渐累积,最终导致"大泥球"回潮
本文件建立一份稳定可追溯的业务架构基线,明确:
- 平台的业务领域全景与子域划分
- 各服务的限界上下文与协作边界
- 跨服务的领域事件流与数据流
- 子域的演进路径与稳定性原则
- DDD 实施规范(供后续 AI 与人类团队遵循)
1.2 适用对象
| 对象 |
使用方式 |
| 人类团队(TL/OL/BO/SPO) |
讨论业务变更前先对照本文件,确认变更点是否触及子域边界 |
| AI 智能体(DT/WDE/OCM) |
深化服务设计、扩展用例、迭代原型前,以本文件为架构稳定锚点 |
| 新成员 |
作为业务架构快速上手文档,配合 PMG 与 PJM 阅读 |
1.3 稳定性原则
- 子域边界稳定:本文件定义的子域划分在「成熟期」前不轻易变更;变更须经 TL 审批并升级 BAS 版本
- 协作契约稳定:跨服务的事件契约与接口契约一旦定义,向后兼容
- 聚合根稳定:每个子域的聚合根是业务概念的"锚",不因技术实现变更
- 领域事件稳定:事件名 + 触发条件 + 订阅方一旦定义,不轻易重命名
二、平台业务领域全景
2.1 业务全景图
graph TB
subgraph 客户域
CST["客户子域<br/>CST-BC"]
MFR["生产商子域<br/>MFR-BC"]
end
subgraph 服务交付域
CPT["客户项目跟踪子域<br/>CPT-BC(核心)"]
QSV["报价子域<br/>QSV-BC(核心)"]
DIS["派单子域<br/>DIS-BC(核心)"]
WKR["师傅子域<br/>WKR-BC"]
LGP["物流商子域<br/>LGP-BC"]
end
subgraph 主数据域
MDS["主数据子域<br/>MDS-BC"]
SCL["品类库 SCL"]
BPL["楼宇库 BPL"]
WPL["师傅库 WPL"]
CPL["客户库 CPL"]
PPL["生产商库 PPL"]
DLV["物流商库 DLV"]
end
subgraph 运营增长域
OPS["运营子域<br/>OPS-BC"]
SCENE["获客场景"]
SMTL["销售物料"]
FLUP["口碑营销"]
end
MDS --> SCL & BPL & WPL & CPL & PPL & DLV
OPS --> SCENE & SMTL & FLUP
OPS -.->|线索| CPT
QSV -.->|报价| CPT
CPT -.->|L5 物流单事件| DIS
DIS -.->|派单决策| LGP
DIS -.->|保险预警| OPS
CPT -.->|L8 NPS 反哺| OPS
CPT -.->|实际数据反哺| MDS
2.2 子域分类(核心 / 支撑 / 通用)
| 子域 |
类型 |
现阶段定位 |
成熟期定位 |
演进触发条件 |
| CPT 客户项目跟踪 |
🔴 核心 |
数据主线,8 阶段全生命周期 |
同 |
新增服务阶段、跟踪池扩展 |
| QSV 报价 |
🔴 核心 |
动态报价引擎 |
同 + C2C 撮合 |
启用 C2C 模式 |
| DIS 派单 |
🔴 核心 |
三模式决策引擎 |
同 + M2 启用 |
启用 M2 独立司机 |
| MDS 主数据 |
🟢 支撑 |
六库供给 |
同 |
新增主体档案类型 |
| OPS 运营 |
🔴 核心 |
获客与增长引擎 |
同 + B 端生态 |
新增获客渠道、合作模式 |
| WKR 师傅 |
🟡 通用 |
师傅入驻与作业 |
同 |
师傅分级体系变更 |
| LGP 物流商 |
🟡 通用 |
物流商入驻与作业 |
同 |
新增物流模式 |
| CST 客户 |
🟡 通用 |
客户档案与订单 |
同 |
客户分级体系变更 |
| MFR 生产商 |
🟡 通用 |
B 端委托与结算 |
同 |
新增 B 端合作模式 |
稳定性约束:核心子域的边界变更须 BAS 版本升级 + TL 审批;支撑/通用子域的内部结构可迭代,但对外契约保持兼容。
三、5 服务限界上下文总图
3.1 限界上下文映射图(C4 Context View)
graph LR
subgraph "QSV 限界上下文"
QSV_BC["报价决策 BC<br/>(核心)"]
QMD_BC["报价模型 BC<br/>(支撑)"]
end
subgraph "CPT 限界上下文"
CPT_BC["客户项目跟踪 BC<br/>(核心)"]
TRAK_BC["跟踪池 BC<br/>(通用)"]
EXCP_BC["异常处理 BC<br/>(通用)"]
end
subgraph "MDS 限界上下文"
MDS_BC["主数据供给 BC<br/>(核心)"]
SIX_BC["六库 BC<br/>(支撑)"]
end
subgraph "OPS 限界上下文"
OPS_BC["获客运营 BC<br/>(核心)"]
SMTL_BC["物料管理 BC<br/>(支撑)"]
FLUP_BC["口碑营销 BC<br/>(支撑)"]
end
subgraph "DIS 限界上下文"
DISP_BC["派单决策 BC<br/>(核心)"]
M3_BC["M3 合同 BC<br/>(支撑)"]
INS_BC["保险策略 BC<br/>(支撑)"]
end
MDS_BC -.->|"OHS:主数据供给"| QSV_BC
MDS_BC -.->|"OHS:主体档案ID"| CPT_BC
MDS_BC -.->|"OHS:物流商档案"| DISP_BC
MDS_BC -.->|"OHS:画像"| OPS_BC
OPS_BC -->|"L1 线索事件"| CPT_BC
QSV_BC -->|"L3 报价决策事件"| CPT_BC
CPT_BC -->|"L5 物流单事件"| DISP_BC
DISP_BC -->|"派单决策事件"| LGP_BC["LGP 接单 BC"]
DISP_BC -->|"保险预警事件"| OPS_BC
CPT_BC -->|"L8 NPS 反哺事件"| OPS_BC
CPT_BC -->|"实际数据反哺事件"| MDS_BC
QSV_BC -.->|"ACL:费率查询"| QMD_BC
DISP_BC -.->|"ACL:物流商档案"| MDS_BC
DISP_BC -.->|"SK:M3 字段"| MDS_BC
3.2 上下文映射模式说明
| 模式 |
含义 |
使用场景 |
| OHS(开放主机服务) |
提供标准化 API 供外部调用 |
MDS 向各业务服务供给主数据 |
| ACL(防腐层) |
转换外部模型为内部模型,隔离变化 |
DIS 调用 DLV 物流商档案时转换为 LogisticsOrder VO |
| SK(共享内核) |
多个上下文共享一部分模型 |
DIS 与 DLV 共享 M3 字段子表 |
| CS(客户/供应商) |
上下游依赖,下游遵从上游模型 |
LGP 遵从 DIS 的接单 API 契约 |
| PL(各行其道) |
上下文独立演进,无直接依赖 |
MFR 与 LGP 各自独立 |
3.3 各服务限界上下文清单
| 服务 |
限界上下文 |
类型 |
当前状态 |
| CPT |
客户项目跟踪 BC |
核心 |
🟡 待 DDD 补全(阶段二-1) |
|
跟踪池 BC |
通用 |
🟡 待 DDD 补全 |
|
异常处理 BC |
通用 |
🟡 待 DDD 补全 |
| QSV |
报价决策 BC |
核心 |
🟡 待 DDD 补全(阶段二-3) |
|
报价模型 BC |
支撑 |
🟡 待 DDD 补全 |
| MDS |
主数据供给 BC |
核心 |
🟡 待 DDD 补全(阶段二-5) |
|
六库 BC |
支撑 |
🟡 待 DDD 补全 |
| OPS |
获客运营 BC |
核心 |
🟡 待 DDD 补全(阶段二-7) |
|
物料管理 BC |
支撑 |
🟡 待 DDD 补全 |
|
口碑营销 BC |
支撑 |
🟡 待 DDD 补全 |
| DIS |
派单决策 BC |
核心 |
🟢 已完成(V1.0) |
|
M3 合同 BC |
支撑 |
🟢 已完成 |
|
保险策略 BC |
支撑 |
🟢 已完成 |
四、服务协作边界与契约
4.1 服务协作矩阵(RACI 视角)
| 业务事件 |
发起方 |
接收方 |
协作模式 |
契约类型 |
SLA |
| L1 线索产生 |
OPS |
CPT |
事件订阅 |
LeadGenerated 事件 |
实时 |
| L2 需求确认 |
CPT |
— |
内部 |
— |
— |
| L3 报价请求 |
CPT |
QSV |
同步调用 |
QuoteRequest API |
≤2s |
| L3 报价返回 |
QSV |
CPT |
同步响应 |
QuoteResult DTO |
≤2s |
| L4 签约下单 |
CPT |
— |
内部 |
— |
— |
| L5 物流单生成 |
CPT |
DIS |
事件发布 |
DispatchRequested 事件 |
实时 |
| L5 派单决策 |
DIS |
LGP |
API 调用 |
DispatchOrder API |
≤5s |
| L5 派单结果 |
LGP |
DIS |
事件发布 |
DispatchAccepted/Rejected |
实时 |
| L5 派单调整 |
DIS |
CPT |
事件发布 |
DispatchAdjusted |
实时 |
| L6 上门安装 |
WKR |
CPT |
事件发布 |
InstallationCompleted |
实时 |
| L7 验收交付 |
CST |
CPT |
API 调用 |
AcceptanceConfirm API |
同步 |
| L8 NPS 回访 |
CPT |
OPS |
事件发布 |
NPSFeedback 事件 |
批量 T+1 |
| 主数据供给 |
MDS |
QSV/CPT/OPS/DIS |
API 调用 |
MasterData* API |
≤500ms |
| 实际数据反哺 |
CPT |
MDS |
事件发布 |
ActualData* 事件 |
批量 T+1 |
| C7 保险预警 |
DIS |
OPS |
事件发布 |
InsuranceWarning 事件 |
实时 |
4.2 边界约束(什么不能做)
- CPT 不得直接调用 DIS 内部算法:CPT 只能发布
DispatchRequested 事件,由 DIS 决策
- DIS 不得直接修改 CPT 订单状态:DIS 通过发布事件让 CPT 自行更新
- QSV 不得直接查询 MDS 六库内部表:QSV 通过 MDS-OHS API 获取 VO
- OPS 不得直接派单:OPS 的获客线索进入 CPT 后,派单由 DIS 执行
- MDS 不持有业务流程状态:MDS 只存储主体档案的长期属性,不参与单次业务流程
- 跨服务事务避免强一致:使用最终一致性 + 事件驱动 + 幂等消费
4.3 契约演进规则
| 契约类型 |
兼容性规则 |
变更流程 |
| 事件契约 |
字段新增兼容;字段删除/重命名不兼容 |
须 BAS 版本升级 + 影响方评审 |
| API 契约 |
入参新增兼容;入参删除/类型变更不兼容 |
须 BAS 版本升级 + 影响方评审 |
| DTO 字段 |
新增字段兼容;删除字段不兼容 |
须通知所有消费方 |
| 事件流方向 |
不可逆 |
须 BAS 版本升级 + TL 审批 |
五、数据流与领域事件总线
5.1 领域事件总线图
flowchart LR
subgraph 发布方
OPS_P[OPS]
QSV_P[QSV]
CPT_P[CPT]
DIS_P[DIS]
WKR_P[WKR]
LGP_P[LGP]
CST_P[CST]
end
subgraph 事件总线
BUS[(领域事件总线<br/>Event Bus)]
end
subgraph 订阅方
OPS_S[OPS]
QSV_S[QSV]
CPT_S[CPT]
DIS_S[DIS]
MDS_S[MDS]
end
OPS_P -->|LeadGenerated| BUS
QSV_P -->|QuoteGenerated| BUS
CPT_P -->|DispatchRequested| BUS
CPT_P -->|NPSFeedback| BUS
CPT_P -->|ActualData*| BUS
DIS_P -->|DispatchDecided| BUS
DIS_P -->|DispatchAdjusted| BUS
DIS_P -->|InsuranceWarning| BUS
WKR_P -->|InstallationCompleted| BUS
LGP_P -->|DispatchAccepted| BUS
LGP_P -->|DispatchRejected| BUS
CST_P -->|AcceptanceConfirmed| BUS
BUS --> CPT_S
BUS --> DIS_S
BUS --> OPS_S
BUS --> MDS_S
BUS --> QSV_S
5.2 事件清单(核心领域事件)
| 事件名 |
发布方 |
订阅方 |
触发条件 |
载荷 |
LeadGenerated |
OPS |
CPT |
线索产生 |
leadId, source, scene, initialNeed |
QuoteGenerated |
QSV |
CPT |
报价生成 |
quoteId, customerId, totalAmount, breakdown |
DispatchRequested |
CPT |
DIS |
L4 签约完成 |
orderId, logisticsOrder, deadline |
DispatchDecided |
DIS |
CPT/LGP |
派单决策完成 |
dispatchId, driverId, mode, score |
DispatchAccepted |
LGP |
DIS/CPT |
司机接单 |
dispatchId, driverId, acceptedAt |
DispatchRejected |
LGP |
DIS |
司机拒绝 |
dispatchId, driverId, reason |
DispatchAdjusted |
DIS |
CPT |
OL 人工调整 |
dispatchId, oldDriver, newDriver, reason |
InsuranceWarning |
DIS |
OPS |
C7 保险触发 |
driverId, claimRatio, cargoValue |
InstallationCompleted |
WKR |
CPT |
L6 安装完成 |
orderId, workHours, photos, issues |
AcceptanceConfirmed |
CST |
CPT |
L7 验收通过 |
orderId, result, signature |
NPSFeedback |
CPT |
OPS |
L8 回访完成 |
orderId, npsScore, feedback |
ActualData* |
CPT |
MDS |
实际数据反哺 |
多种:WorkHoursData/CustomerScoreData/BuildingVerifyData 等 |
5.3 数据流闭环(CPT 反哺 MDS)
flowchart LR
CPT_DATA[CPT 采集实际数据] --> |工时数据| WPL_UP[WPL 师傅画像更新]
CPT_DATA --> |客户评分| WPL_LV[WPL 等级校准]
CPT_DATA --> |客户行为| CPL_TAG[CPL 标签更新]
CPT_DATA --> |楼宇核实| BPL_ARCH[BPL 楼宇档案更新]
CPT_DATA --> |成交价偏差| SCL_FEE[SCL 费率校准]
WPL_UP --> QSV_ADJ[QSV 报价参数调整]
WPL_LV --> QSV_ADJ
CPL_TAG --> OPS_MKT[OPS 精准营销]
BPL_ARCH --> QSV_ADJ
SCL_FEE --> QSV_ADJ
QSV_ADJ -.->|下一单报价更精准| CPT_DATA
六、DDD 实施规范
6.1 子域划分原则
- 核心子域:业务差异化竞争力所在,必须自研,DDD 战术设计完整
- 支撑子域:为核心子域提供支撑,可自研可外采,DDD 战术设计简化
- 通用子域:行业通用能力,可外采(如身份认证、消息推送),DDD 战术设计最简
6.2 限界上下文划分原则
- 一个限界上下文 = 一个子域的落地:不跨子域共享聚合根
- 限界上下文边界 = 团队边界:一个团队负责一个或多个 BC,不跨团队共享 BC
- 语言统一:同一 BC 内使用统一语言(Ubiquitous Language),跨 BC 通过翻译
- 数据库独立:每个 BC 独立数据库或独立 Schema,不跨 BC 共享表
6.3 聚合根设计原则
- 唯一标识:每个聚合根有全局唯一 ID
- 一致性边界:聚合内强一致,聚合间最终一致
- 不变量:聚合根负责维护业务不变量(如派单分数 ≥ 0)
- 引用方式:聚合间通过 ID 引用,不持有对象引用
- 事务边界:一个事务只修改一个聚合
6.4 领域事件设计原则
- 事件命名:过去时态(XxxCompleted / XxxGenerated)
- 事件载荷:最小必要字段 + 聚合 ID,不含业务逻辑
- 幂等消费:订阅方须支持幂等消费(基于事件 ID 去重)
- 版本化:事件 schema 须版本化,支持向后兼容
6.5 服务设计文档 DDD 章节模板
每个服务设计文档须包含以下 DDD 章节(参考 DIS-D V1.0):
## 二、DDD 战略设计
### 2.1 子域定位
(标注核心/支撑/通用 + 现阶段定位)
### 2.2 限界上下文
(Mermaid 图含本服务 BC + 外部 BC)
### 2.3 上下文映射
(OHS/ACL/PL/SK/CS 模式标注表)
## 三、DDD 战术设计(可选嵌入业务逻辑章节)
### 3.1 聚合根
(名称 + 唯一标识 + 不变量 + 边界)
### 3.2 实体与值对象
(清单 + 字段)
### 3.3 领域服务
(清单 + 职责 + 算法伪代码)
### 3.4 领域事件
(清单 + 触发条件 + 订阅方)
### 3.5 仓储与工厂
(清单 + 职责)
七、演进路径与稳定性保障
7.1 演进阶段表
| 阶段 |
时间 |
子域启用 |
新增 BC |
BAS 版本 |
| 筹备期 |
1-3 月 |
QSV/CPT/MDS |
— |
V1.0 |
| 试运营 |
3-6 月 |
+ OPS |
获客运营 BC |
V1.1 |
| 扩张期 |
6-12 月 |
+ DIS(M3 为主) |
派单决策 BC + M3 合同 BC |
V1.2 |
| 成熟期 |
12-24 月 |
DIS M2 启用 + C2C |
C2C 撮合 BC |
V2.0 |
7.2 变更治理流程
flowchart TD
REQ[变更需求提出] --> EVAL[影响评估<br/>DT 主导]
EVAL --> DEC{是否触及<br/>子域边界?}
DEC -->|否| DT_IMPL[DT 直接实施<br/>BAS 小版本升级]
DEC -->|是| TL_REV[TL 评审<br/>+ 影响方评审]
TL_REV --> APPROVED{审批通过?}
APPROVED -->|是| BAS_UP[BAS 大版本升级<br/>+ 文档同步]
APPROVED -->|否| REJECT[驳回<br/>记录决策]
BAS_UP --> IMPL[实施变更<br/>+ 测试 + 发布]
7.3 稳定性检查清单(每季度执行)
| # |
检查项 |
责任人 |
| 1 |
子域边界是否被打破(跨 BC 共享表) |
TL |
| 2 |
限界上下文映射是否更新 |
DT |
| 3 |
领域事件契约是否向后兼容 |
DT |
| 4 |
聚合根不变量是否被违反 |
WDE |
| 5 |
服务协作矩阵是否准确 |
DT |
八、附录
8.1 术语速查(参见 GLY V4.7)
- BC:Bounded Context,限界上下文
- AR:Aggregate Root,聚合根
- VO:Value Object,值对象
- DE:Domain Event,领域事件
- OHS:Open Host Service,开放主机服务
- ACL:Anti-Corruption Layer,防腐层
- SK:Shared Kernel,共享内核
- CS:Conformist,客户/供应商
- PL:Published Language,各行其道
8.2 关联文档
8.3 修订记录
| 版本 |
日期 |
修订人 |
修订内容 |
| V1.0 |
2026-08-21 |
DT |
初版建立:定义平台业务领域全景、5 服务限界上下文总图、服务协作边界与契约、领域事件总线、DDD 实施规范、演进路径与稳定性保障;作为阶段二 DDD 重构与后续团队讨论的稳定基线 |
本文件为业务架构稳定基线(BAS DOC-A07 V1.0),子域边界、协作契约、领域事件清单在成熟期前不轻易变更。变更须经 TL 审批并升级 BAS 版本。