[ PROMPT_NODE_23122 ]
architecture_decision_records
[ SKILL_DOCUMENTATION ]
# 架构决策记录 (ADR) 框架
## 什么是 ADR?
架构决策记录 (ADR) 捕获所做出的重要架构决策及其背景和后果。它们有助于维护机构知识,并解释系统为何以这种方式构建。
## ADR 模板
### ADR-[编号]: [标题]
**日期**: YYYY-MM-DD
**状态**: [提议 | 已接受 | 已弃用 | 已取代]
**决策者**: [参与决策的人员列表]
**技术故事**: [工单/问题参考]
#### 背景与问题陈述
[描述需要解决的背景和问题。我们试图实现什么?]
#### 决策驱动因素
- [驱动因素 1:例如,性能要求]
- [驱动因素 2:例如,上市时间]
- [驱动因素 3:例如,团队专业知识]
- [驱动因素 4:例如,成本限制]
#### 考虑的选项
1. **选项 1: [名称]**
2. **选项 2: [名称]**
3. **选项 3: [名称]**
#### 决策结果
**选择的选项**: "[选项名称]",因为 [理由]
##### 正面后果
- [后果 1]
- [后果 2]
##### 负面后果
- [风险 1 及缓解措施]
- [风险 2 及缓解措施]
#### 选项的优缺点
##### 选项 1: [名称]
- **优点**:
- [优势 1]
- [优势 2]
- **缺点**:
- [劣势 1]
- [劣势 2]
##### 选项 2: [名称]
[重复结构]
#### 链接
- [相关 ADR]
- [文档]
- [研究/PoC]
---
## ADR 示例
### ADR-001: 微服务架构
**日期**: 2024-01-15
**状态**: 已接受
**决策者**: CTO, 工程副总裁, 技术负责人
**技术故事**: ARCH-001
#### 背景与问题陈述
我们的单体应用程序变得难以扩展和部署。不同的团队互相干扰,部署周期越来越长。我们需要决定未来 3-5 年的架构方法。
#### 决策驱动因素
- 需要独立的团队部署
- 需要独立扩展不同组件
- 不同组件具有不同的性能特征
- 团队规模从 25 人增加到 75 人以上
- 需要支持多种技术栈
#### 考虑的选项
1. **保持单体**: 继续使用当前架构
2. **模块化单体**: 分解为模块但单一部署
3. **微服务**: 全面的面向服务架构
4. **无服务器**: 函数即服务 (FaaS) 方法
#### 决策结果
**选择的选项**: "微服务",因为它最能支持我们的团队自主性