[ PROMPT_NODE_23686 ]
architecture-decision-records
[ SKILL_DOCUMENTATION ]
# 架构决策记录 (ADR)
用于创建、维护和管理架构决策记录 (ADR) 的综合模式,旨在捕获重要技术决策背后的背景和理由。
## 何时使用此技能
- 做出重大架构决策时
- 记录技术选型时
- 记录设计权衡时
- 新团队成员入职引导时
- 回顾历史决策时
- 建立决策流程时
## 何时不使用此技能
- 仅需记录小的实现细节时
- 变更属于微小补丁或日常维护时
- 没有需要捕获的架构决策时
## 指令
1. 捕获决策背景、约束和驱动因素。
2. 记录考虑过的选项及其权衡。
3. 记录决策、理由和后果。
4. 链接相关的 ADR 并随时间更新状态。
## 核心概念
### 1. 什么是 ADR?
架构决策记录捕获以下内容:
- **背景 (Context)**:为什么我们需要做出这个决定
- **决策 (Decision)**:我们决定了什么
- **后果 (Consequences)**:结果是什么
### 2. 何时编写 ADR
| 编写 ADR | 跳过 ADR |
|-----------|----------|
| 采用新框架 | 小版本升级 |
| 数据库技术选型 | Bug 修复 |
| API 设计模式 | 实现细节 |
| 安全架构 | 日常维护 |
| 集成模式 | 配置变更 |
### 3. ADR 生命周期
Proposed (提议) → Accepted (采纳) → Deprecated (弃用) → Superseded (被取代)
↓
Rejected (拒绝)
## 模板
### 模板 1:标准 ADR (MADR 格式)
markdown
# ADR-0001: 使用 PostgreSQL 作为主数据库
## 状态
Accepted
## 背景
我们需要为新的电子商务平台选择一个主数据库。系统将处理:
- ~10,000 并发用户
- 具有层级分类的复杂产品目录
- 订单和支付的事务处理
- 产品全文搜索
- 门店定位的地理空间查询
团队拥有 MySQL、PostgreSQL 和 MongoDB 的经验。我们需要 ACID 合规性来处理金融交易。
## 决策驱动因素
* **必须具备 ACID 合规性** 以处理支付
* **必须支持复杂查询** 以进行报表分析
* **应支持全文搜索** 以降低基础设施复杂度
* **应具备良好的 JSON 支持** 以实现灵活的产品属性
* **团队熟悉度** 可减少上手时间
## 考虑的选项
### 选项 1: PostgreSQL
- **优点**: 符合 ACID,出色的 JSON 支持 (JSONB),构建