搜尋完整文件

輸入關鍵字,例如 idempotency、proposal lifecycle 或權限。

選擇 開啟
English
瀏覽文件

Activity · 核心概念

Activity 核心概念

Activity 把產品活動具體化成時間軸。Host 提供 tenant 與 actor 身分、業務意義及政策;Activity 儲存可重用的動態牆基礎資料與衍生的讀取狀態。

Host product event
  └─ Post
      ├─ TimelineEntry
      ├─ Engagement
      └─ derived PostStats

Tenant 與 actor

每項資源都有 tenant_id。Activity 以 tenant filter 隔離資源,不會自行推斷 tenant 對應哪個帳號、組織或產品實例。

actor_id 是 host 所擁有的呼叫者識別碼。Host 必須先驗證使用者,判斷使用者可以代表哪個 actor,再簽署 Activity 請求。

Post

Post 是一筆產品活動的來源紀錄。公開欄位包含:

欄位用途
actor_id來自簽署請求,由 host 管理的作者身分
verb活動類型,例如 postedmatchedannouncedshared
object_ref指向 host object 的結構化參照
body選填的顯示文字
metadata產品特定的結構化資料
render_refsMention、媒體與連結所需的最小參照
visibilitypublicfollowersprivate

Activity 只儲存參照,不會解析 host identity、處理媒體,或決定 host object 的呈現方式。

Follow edge

Follow edge 在同一個 tenant 內連接呼叫者與另一個 actor。狀態可以是 activemutedblocked

這張 graph 控制 Activity 的時間軸具體化行為,但它不是業務權限系統。Host 仍須判斷使用者是否能執行對應的產品操作。

Timeline entry

Timeline entry 把 post 投影到一位 viewer 的首頁時間軸,並記錄:

  • viewer_id:接收這筆 entry 的 actor
  • post_id:來源 post
  • reasonselffollowingrepost
  • ranked_at:materialized timeline 的排序時間

Viewer 與 post 的組合是唯一的。Fan-out job 即使重試,最後仍會收斂成一筆 timeline entry。

Engagement 與統計

Engagement 記錄 like、repost 與 share。同一個 post、actor 及 engagement kind 的組合是唯一的。

PostStats 是最終一致的衍生投影。Counter 可用於畫面呈現,但不是 engagement 的 canonical record。

權責邊界

Activity 負責 post、follow edge、timeline materialization、engagement primitive,以及契約內的 post visibility enforcement。

Host 負責使用者驗證、business authorization、object truth、契約外的 ranking policy,以及產品呈現。Activity 永遠不會呼叫 host application API。

下一步:簽署 Activity 請求