Pool Resource Stamina Routing¶
概念概覽
誠實邊界¶
核心知識¶
誠實邊界¶
Pool Resource 目前只支援 Stamina,DB schema 也只有 stamina 欄位。文件、命名、註解必須全部收斂到這個事實,不假裝 generic pool 已存在。
若要真正 generic(支援 PvpTicket、BossTicket 等),必須做 schema migration,不能只靠命名抽象。
Public API Bypass 問題¶
public API 存在 pool bypass 的漏洞:必須加 guard + rename,確保所有 pool resource 操作都走統一的 grant pipeline,而不是繞過 planner 直接寫 DB。
容量計算正確姿勢¶
容量模型要算「淨新增槽位」:useItem 的 source item 被消耗可能釋放槽位,要一起計入 ConsumeSpec,否則 stackable consume 會高估可用空間。
經驗教訓¶
-
技術文件若宣稱 generic 但 DB schema 只有 stamina 欄位,這本身就是一筆架構債,要在設計階段誠實承認
-
「誠實版」比假裝平台版更能避免下游開發者建立錯誤假設
常見陷阱¶
-
假裝 generic pool 已存在:讓下游開發者加新 resource type 時踩 schema 限制的雷
-
容量計算未考慮 ConsumeSpec 的 source item 釋放:stackable consume 場景下高估可用槽位
最佳實踐¶
-
schema 和 API 命名要誠實反映實際支援的 resource 類型,不要超前宣稱 generic
-
要做真正的 generic pool 必須先做 schema migration,而不是靠 interface 抽象繞過
相關概念¶
相關視角¶
以下頁面與本概念共享主題,但從不同角度切入。保留獨立視角同時提供交叉參考:
- Game Resource Vertical Table — 共享:
game-backend/ 獨特:cas,database-schema - gRPC Proto Pool Resource Design — 共享:
game-backend,pool-resource/ 獨特:backward-compatibility,grpc-proto - Time-Limited Pass Item Design — 共享:
game-backend/ 獨特:game-design,item-system - PendingEvents Middleware Pattern for Real-time HUD — 共享:
game-backend,stamina/ 獨特:event-driven,eventstore - Game Item Exemption Resource Architecture — 共享:
game-backend/ 獨特:architecture-pattern,item-system
來源 Sessions¶
| 日期 | Session | 貢獻摘要 |
|---|---|---|
| 2026-04-10 | da5e38be-36d2-40ac-8b78-e37cc8e0dec9 | 明確宣告 Pool Resource 目前只支援 Stamina(schema 只有 stamina 欄位),建立「誠實版 vs 平台版」邊界,避免假裝 generic 造成架構債 |