目錄

  • 一句話結論(先給結論)
  • 一、在需求説明書(PRD / BRD)中,接口設計“應該出現到什麼程度”
  • ✅ 應該包含(產品經理職責)
  • 1️⃣ 系統間的交互關係
  • 2️⃣ 業務語義層面的接口契約(Business Contract)
  • 3️⃣ 業務邊界與職責歸屬(非常重要)
  • 4️⃣ SLA / 非功能性要求(業務視角)
  • ❌ 不應該包含(不屬於產品經理職責)
  • 二、跨微服務接口 ≠ 純技術問題(這是很多團隊的誤區)
  • 為什麼?
  • 三、產品經理 vs 技術人員:職責清晰劃分
  • 產品經理(必須負責)
  • 技術負責人 / 架構師(必須負責)
  • 四、成熟團隊的“正確姿勢”(推薦)
  • PRD 中的接口描述長這樣(示意)
  • 五、總結一句“職能邊界話術”(你可以直接用)



一句話結論(先給結論)

跨系統、跨微服務的接口設計:

屬於需求説明書的一部分,但通常只到“契約級 / 業務級”,而不是“技術實現級”;
產品經理對其“定義需求與邊界”負責,技術負責人對其“具體設計與落地”負責。


一、在需求説明書(PRD / BRD)中,接口設計“應該出現到什麼程度”

✅ 應該包含(產品經理職責)

正式、可落地的需求説明書中,以下內容必須出現

1️⃣ 系統間的交互關係

  • 哪些系統參與
  • 調用方向(誰調用誰)
  • 同步 / 異步
  • 關鍵業務鏈路

例:
「訂單創建後,需要同步調用風控系統進行風險校驗,校驗通過後才能進入支付流程」


2️⃣ 業務語義層面的接口契約(Business Contract)

不是技術細節,而是業務含義

  • 接口目的(Why)
  • 觸發條件(When)
  • 輸入輸出的業務字段
  • 成功 / 失敗的業務含義
  • 關鍵業務規則

例:
「調用庫存系統 reserveStock 接口
輸入:SKU、數量、訂單號
輸出:是否鎖庫存成功
失敗時訂單需進入待處理狀態」


3️⃣ 業務邊界與職責歸屬(非常重要)

  • 哪個系統是最終裁決者
  • 哪個系統負責兜底
  • 異常由誰處理

例:
「庫存不足的判斷以庫存系統為準,訂單系統不做二次校驗」


4️⃣ SLA / 非功能性要求(業務視角)

  • 是否強一致
  • 是否允許延遲
  • 可接受失敗率
  • 超時後的業務行為

❌ 不應該包含(不屬於產品經理職責)

以下內容不要求產品經理在需求説明書中給出:

  • HTTP / gRPC / MQ 選型
  • REST / RPC 接口路徑
  • 參數類型(string / int)
  • 重試策略、熔斷算法
  • 鑑權方式(OAuth / AKSK)
  • DTO / VO / Protobuf 定義

這些屬於技術設計説明(TDD / 技術方案)


二、跨微服務接口 ≠ 純技術問題(這是很多團隊的誤區)

很多衝突源於一句話:

“接口是技術的事情,產品不用管”

這是錯誤的

為什麼?

因為接口本質上是業務協作的邊界

  • 誰擁有數據主權
  • 誰對業務結果負責
  • 出錯誰兜底
  • 重試會不會造成重複下單

這些如果不在需求階段定清楚,技術階段一定會扯皮。


三、產品經理 vs 技術人員:職責清晰劃分

產品經理(必須負責)

維度

是否負責

是否需要對接某系統


接口的業務目的


調用時機


成功 / 失敗的業務含義


業務字段含義


業務異常處理策略



技術負責人 / 架構師(必須負責)

維度

是否負責

接口協議 / 技術選型


數據結構定義


性能 / 併發 / 限流


重試、冪等、事務


監控、日誌、告警



四、成熟團隊的“正確姿勢”(推薦)

PRD 中的接口描述長這樣(示意)

【接口名稱】庫存鎖定
【調用方】訂單系統
【被調用方】庫存系統
【觸發時機】用户提交訂單
【業務入參】SKU、數量、訂單號
【業務返回】
  - 成功:庫存已鎖定
  - 失敗:庫存不足 / 系統異常
【異常處理】
  - 庫存不足:提示用户
  - 系統異常:訂單進入“待確認”狀態
【一致性要求】強一致

👉 不出現任何技術細節,但業務邊界非常清楚


五、總結一句“職能邊界話術”(你可以直接用)

跨系統、跨微服務的接口設計,屬於需求説明書的內容,但只到業務契約層;
產品經理定義“要什麼、何時要、出錯怎麼辦”,
技術負責“怎麼實現、怎麼保證穩定”。

如果你願意,我可以幫你:

  • 給你一個 PRD 中“跨系統接口説明”的標準模板
  • 或直接幫你 review 你現在的需求文檔,看哪些接口責任沒寫清楚