Co-authored-by: 王性驊 <danielwang@supermicro.com> Reviewed-on: #4 |
||
|---|---|---|
| .. | ||
| README.zh-TW.md | ||
| SKILL.md | ||
README.zh-TW.md
非同步與佇列設計 (Async Queue Design) 知識合約指南
概述
async-queue-design 是知識合約,用來設計非同步工作流程、佇列主題、生產者、消費者、重試策略、DLQ、排序保證與逾時行為。供 design-architecture 在設計非同步模型時參考。
核心原則
非同步處理必須有 PRD 需求支撐。不要因為非同步「比較好」或「更有擴展性」就採用。每個非同步決策必須可追溯到特定 PRD 功能需求或 NFR。
設計重點
- 何時用非同步:長時運行操作、PRD 要求非同步、多個消費者需反應同一事件、吞吐量需求超過同步處理能力
- 佇列/主題設計:Topic vs Queue 的選擇、訊息結構、排序保證、持久性保證
- 重試策略:最大重試次數、退避策略(Fixed、Exponential、Exponential with Jitter)、重試預算
- DLQ 策略:何時路由到 DLQ、DLQ 訊息保留、監控與警報
- 逾時與取消:處理逾時的定義、取消訊號機制
知識合約職責
- 提供非同步設計的理論指引
- 不直接產生非同步流程規格(由
design-architecture的 Async / Queue Design 章節負責)
不應做的事
- 不替系統選擇特定訊息代理
- 不定義具體的佇列名稱或主題名稱
- 不產生實作程式碼