36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
|
|
# 整合邊界設計 (Integration Boundary Design) 知識合約指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
`integration-boundary-design` 是知識合約,用來提供整合邊界設計的原則與模式。涵蓋外部 API 整合、Webhook 處理、Polling、重試策略、速率限制與失敗模式處理。供 `design-architecture` 在定義 Integration Boundaries 時參考。
|
|||
|
|
|
|||
|
|
## 核心原則
|
|||
|
|
### 整合隔離
|
|||
|
|
- 外部系統失敗不得級聯到系統失敗
|
|||
|
|
- Circuit Breaker 必須保護內部服務
|
|||
|
|
- 整合程式碼必須與商業邏輯隔離(Anti-Corruption Layer)
|
|||
|
|
|
|||
|
|
### 明確合約
|
|||
|
|
- 每個外部整合必須有明確定義的合約
|
|||
|
|
- 合約必須包含請求/回應結構、錯誤碼與 SLA
|
|||
|
|
- 變更必須版本化並盡可能向後相容
|
|||
|
|
|
|||
|
|
### 假設失敗
|
|||
|
|
- 外部系統會失敗、逾時、返回非預期資料
|
|||
|
|
- 必須為每個整合定義逾時、重試與回退
|
|||
|
|
|
|||
|
|
## 設計重點
|
|||
|
|
- **外部 API 整合**:同步呼叫、非同步呼叫、Batch 呼叫、串流
|
|||
|
|
- **Webhook 處理**:Inbound Webhooks(接收)與 Outbound Webhooks(發送)
|
|||
|
|
- **Polling**:增量 Polling、輪詢間隔與資料差距處理
|
|||
|
|
- **重試策略**:退避策略、重試預算、最大總重試時間
|
|||
|
|
- **速率限制**:Token Bucket、Leaky Bucket、Fixed Window、Sliding Window
|
|||
|
|
- **失敗模式處理**:Transient、Permanent、Partial、Cascading Failure
|
|||
|
|
|
|||
|
|
## 知識合約職責
|
|||
|
|
- 提供整合邊界設計的理論指引
|
|||
|
|
- 不直接產生整合合約或實作程式碼
|
|||
|
|
|
|||
|
|
## 不應做的事
|
|||
|
|
- 不替特定外部系統選擇整合方式
|
|||
|
|
- 不定義具體的逾時值或重試次數
|
|||
|
|
- 不產生實作程式碼
|