opencode-workflow/skills/consistency-transaction-design/README.zh-TW.md

34 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 一致性與交易設計 (Consistency Transaction Design) 知識合約指南
## 概述
`consistency-transaction-design` 是知識合約,用來提供一致性与交易設計的原則與模式。涵蓋 Strong vs Eventual Consistency、Idempotency、Deduplication、Retry、Outbox Pattern、Saga 與 Compensation。供 `design-architecture` 在定義一致性模型時參考。此合約取代了原有的 `idempotency-design`
## 核心原則
### CAP Theorem
- Consistency每次讀取都獲得最新寫入或錯誤
- Availability每個請求都獲得回應不保證是最新寫入
- Partition tolerance網路分割時系統仍可運作
- 三者無法同時滿足,根據業務需求選擇。
### 一致性光譜
- **Strong Consistency**:讀取永遠返回最新寫入
- **Eventual Consistency**:讀取可能返回過時資料,最終收斂
- **Session Consistency**:同一 session 內讀取看到自己的寫入
- **Causal Consistency**:讀取遵守因果順序
## 設計重點
- **一致性模型選擇**:按資料域選擇,而非按系統選擇
- **Idempotency 設計**何時需要、Key 策略、TTL、儲存位置
- **Deduplication**Idempotency key、Content hash、Sequence number
- **Retry**Fixed interval、Exponential backoff、Circuit breaker
- **Outbox Pattern**:確保可靠事件發布
- **Saga Pattern**跨服務分散式交易的補償機制Choreography vs Orchestration
## 知識合約職責
- 提供一致性與交易設計的理論指引
- 不直接產生一致性模型規格(由 `design-architecture` 的 Consistency Model 章節負責)
## 不應做的事
- 不替系統選擇特定一致性策略
- 不定義具體的 Idempotency key 格式或 TTL
- 不產生實作程式碼