// 作品 / 詳情

FeedaaS

Multi-tenant activity feed infrastructure。獨立的社群牆底層服務。

技術棧
elixirphoenixashoban
SCREENSHOT_001.png

一句話

Business-logic agnostic 的社群動態牆基礎設施。只認 post、follow graph、timeline、engagement,不認業務語意。

為什麼做這個

跟 ChataaS 同樣的邏輯 — 多個產品需要社群動態功能,但業務語意完全不同。一個產品的 post 是比賽結果,另一個是活動公告,但底層的發布、分發、排序、互動聚合是同一件事。

跟 ChataaS 完全獨立。Chat 是對話系統(room membership、雙向互動、即時傳遞),Feed 是發布系統(post visibility、fan-out、timeline 組裝、engagement 聚合)。工程上長得像不代表應該是同一個 service boundary — 商業語意不同就不該耦合。

設計原則

  • FeedaaS 只認 post / follow graph / timeline / engagement,不認業務語意
  • verb 是有限集合(posted、matched、announced、shared),object_refmetadata 是 opaque 的,主系統自己決定怎麼 render
  • 不依賴其他 infra service — 即使工程模式相似

核心原語

原語職責
Post發布單位,帶 verb + opaque metadata + visibility
FollowEdge誰訂閱誰,驅動 feed 可見性
TimelineEntry物化投影,每個 viewer 的個人化 timeline
Engagement獨立互動資源(like、repost)

資料流

Post 寫入是同步的,timeline materialization 是非同步的(Oban fan-out worker)。Home timeline 讀 TimelineEntry,profile timeline 直接讀 Post by actor_id。

v0 排序是嚴格逆時序,沒有推薦引擎。

狀態

Skeleton 階段。RFC 已定義 service boundary,Ash resource 已建立,等待第一個消費端驗證。