搜尋 CarlStack

按 Esc 關閉;完整結果會顯示文章摘要、標籤與日期。

系統設計
14 分鐘
·

Slack 訊息投遞之旅:Gateway Server、Channel Server 與 Vitess 分片 MySQL

依 Slack 工程部落格三篇原文(2017 Flannel、2020 Vitess、2023 Real-time Messaging)整理一則訊息的路徑:Envoy 與 Gateway Server 接住 WebSocket,Admin Server 依雜湊環找到 Channel Server 扇出,訊息資料在遷移 Vitess 時改按頻道分片。

系統設計
13 分鐘
·

Twitter 2023 年開源的「為你推薦」管線:Earlybird 檢索、Heavy Ranker 評分與重排

依 Twitter 2023 年 3 月開源的程式碼與官方部落格,拆解「為你推薦」時間軸的四段管線:從每天約 5 億則推文中以 Earlybird、GraphJet 與 SimClusters 取出約 1,500 則候選,經約 4,800 萬參數的 MaskNet 預測十種互動機率並加權計分,再做可見性過濾與多樣性重排。

系統設計
12 分鐘
·

受 Reddit 啟發的高併發社群儲存參考設計:EAV 模型、多層快取、留言樹與熱門排行

以 Reddit 公開過的做法為參考,整理社群論壇的高併發儲存設計:EAV 實體模型、Memcached 與排行列表快取、巢狀留言樹,以及 Hot Ranking 排行演算法。文中區分哪些是 Reddit 公開過的,哪些是參考設計。

系統設計
10 分鐘
·

YouTube 影片上傳與轉碼管線:可續傳上傳、GOP 分塊與依熱度分級的算力

依 YouTube Data API 文件、YouTube 官方部落格(2021)與 Google 的 Argos VCU 論文(ASPLOS 2021),整理 YouTube 公開過的影片處理做法:可續傳上傳、closed GOP 分塊、任務依賴圖排程、多輸出轉碼,以及依熱門程度分級投入轉碼算力。

系統設計
6 分鐘
·

Netflix 的即時推播與跨可用區快取:Zuul Push、EVCache 與 Slow-Fast 通知

整理 Netflix 公開過的推播與快取做法:Zuul Push 長連線叢集與 Push Registry、EVCache 的跨可用區讀寫、RENO 事件系統與 Slow-Fast 通知決策,並補充快取擊穿的通用技巧 XFetch。

系統設計
11 分鐘
·

微服務演進參考設計:從 Rails 單體、服務蜘蛛網到分層治理與統一資料層(參考 Airbnb 公開資料)

一份受 Airbnb 公開分享啟發的微服務演進參考設計:單體的瓶頸、無序服務蜘蛛網的教訓、單向分層與統一 GraphQL 資料層的設計示意。這不是 Airbnb 的實際架構,文中先列出 Airbnb 公開過的部分與來源。

系統設計
10 分鐘
·

從 Cassandra 到 ScyllaDB:Discord 用 Rust 資料服務與 Request Coalescing 儲存數兆則訊息

整理 Discord 公開過的訊息儲存演進:Cassandra 時期的 GC 停頓、熱點分區與壓實落後,先在 Cassandra 前加上 Rust 資料服務做 Request Coalescing,2022 年 5 月切換到 ScyllaDB 後,歷史訊息讀取 p99 從 40–125ms 降到 15ms。

系統設計
12 分鐘
·

從單體到分片:Figma 把 PostgreSQL 擴展近 100 倍的兩段遷移

依 Figma 官方兩篇工程文整理它的資料庫擴展路徑:2020 年的單一 RDS、2022 年的垂直拆庫、2022 年底起用自研 DBProxy 做水平分片,以及 Postgres view、邏輯複製與 PgBouncer 暫停組成的遷移流程。