A New Model for Backend Infrastructure (後端基礎設施的新模型)

原始來源與檔名:2026-06-02T092319+0800-A New Model for Backend Infrastructure.md


NAPKIN | 餐巾纸

餐巾纸公式

傳統整合稅 (Integration Tax) = N 個服務的平方級複雜度 iii 共享運行時 (Shared Runtime) = 所有 Worker (API/佇列/Agent) × 1 個中央 WebSocket 引擎

與其在不同的服務、佇列、狀態儲存和 AI 代理之間寫滿點對點 (Point-to-point) 的膠水程式碼,不如讓所有模組都作為 Worker 連接到同一個共享運行時,實現跨語言的無縫函式呼叫。

一句话

iii 提出了一種全新的後端架構範式:透過單一的 WebSocket 引擎取代微服務間繁瑣的 API 整合,讓 TypeScript、Python 與 AI 代理能像呼叫本地函式一樣互相協作。

餐巾纸草图

[ Traditional ]                   [ iii Shared Runtime ]
SvcA <-> SvcB <-> Queue                 |--> SvcA (TS)
 ^                  ^                   |--> SvcB (Python)
 |                  |             Engine|<-- Queue Worker
SvcC <-> Agent <-> SvcD                 |--> AI Agent
(N^2 複雜度, 滿是 API SDK)               |--> State Worker
                                   (所有節點透過 WebSocket 註冊與呼叫函式)

ROUND 1: SKELETON | 骨架掃描

“這篇文章在說什麼”

章节骨架

  1. 問題陳述: 傳統後端架構的點對點整合導致複雜度呈平方級增長。
  2. 共享運行時模型: 介紹 iii 引擎的中央集線器概念。
  3. AI Agent 的一等公民地位: Agent 不再是外部呼叫者,而是系統內部的原生 Worker。
  4. 三大基石: Workers (工作節點), Functions (函式), Triggers (觸發器)。
  5. 與傳統方法的差異: 將 API、佇列與排程都收斂到統一的函式目錄背後。
  6. 架構演進對比: 以新增一個 Queue 為例,展示「整合前」與「整合後」的巨大差異。
  7. 實作演練: 10 分鐘內建立跨語言 (Python/TS) 的多 Worker 系統。

ROUND 2: DISSECTION | 血肉解剖

“憑什麼這麼說”

论证链

服務間的溝通依賴特定的 HTTP 協定與序列化邏輯 --> 系統越龐大,維護各個節點通訊的「膠水代碼」就越多 --> 引入一個用 Rust 撰寫的高效中央引擎 (Engine) --> 所有 Worker (不論語言) 只需透過 WebSocket 連接並註冊自己擁有的 Function --> 引擎統一代管呼叫路由、序列化、重試與追蹤 (Tracing) --> 整合稅降為零,甚至連 AI Agent 都能無縫加入。

关键证据

  1. 跨語言無縫呼叫:文章展示了具體的程式碼,TypeScript Worker 可以直接透過 iii.trigger({function_id: 'math::add'}) 呼叫定義在 Python Worker 內的函式,開發者無需處理 HTTP 請求。
  2. 基於 Rust 的高效核心:引擎程式碼庫有 74.8% 為 Rust,確保了路由與狀態管理的高效能,而提供給使用者的 SDK 則極度輕量化。
  3. 動態擴充:執行 iii worker add queue 即可將佇列能力熱插拔 (Hot-plug) 進入系統,其他節點立即可用,完全不需要修改現有的業務代碼。

隐形假设与边界

ROUND 3: SOUL | 靈魂提取

“還能怎麼用”

跨域映射


A New Model for Backend Infrastructure (Architectural Deep Dive)

前言/背景

在現代後端開發中,隨著微服務、佇列、狀態庫以及近期 AI Agent 的加入,系統的「整合複雜度 (Integration Tax)」呈指數級上升。開源專案 iii 提出了一種顛覆性的「共享運行時 (Shared Runtime)」架構,試圖透過一個中央 WebSocket 引擎,徹底消除微服務與基礎設施之間點對點的膠水代碼,實現真正的跨語言函式呼叫。

章節詳細總結

傳統整合的痛點與 iii 的解法

三大核心基石 (Three Building Blocks)

  1. Workers (工作節點):任何連接到引擎的進程,無論是 TypeScript API、Python ML 腳本還是 AI Agent,都是平等的 Worker。它們可以部署在本地或雲端,引擎只關心連線狀態。
  2. Functions (函式):擁有穩定命名空間的執行單元(例如 math::add)。開發者只需呼叫該名稱,引擎會自動處理跨語言、跨進程的路由與序列化。
  3. Triggers (觸發器):宣告式地定義函式何時執行。觸發器可以是直接的函式呼叫、HTTP Request、Cron 排程或佇列訂閱。同一個函式處理常式 (Handler) 可以無縫掛載多種觸發器。

AI Agent 的一等公民地位 (Agents as First-class Citizens)

傳統架構中,AI Agent 通常以外部系統的形式存在,需透過特定的 Tool-call 介面與系統互動。 在 iii 模型中,Agent 本身就是一個 Worker。它透過 WebSocket 註冊,直接探索函式目錄 (Function Catalog),並與其他微服務生成相同格式的 Trace。當 Agent 需要新能力時,甚至可以在運行時透過 iii worker add sandbox 動態載入新模組,實現無需重啟的系統擴展。

實作範例與跨語言呼叫

文章提供了一個具體的實戰演練:

開發者無需撰寫任何 HTTP Client 或 JSON 解析代碼,引擎包辦了底層通訊。

系統限制與架構考量 (Tradeoffs)

作者在文末誠實地指出了該架構面臨的挑戰:

  1. 容錯語義 (Failure Semantics):目前官方文件對於 Worker 中途斷線、跨節點呼叫的重試保證等分散式系統常見的失敗情境,尚缺乏清晰的規範。
  2. 生態系依賴:共享運行時的價值取決於有多少「開箱即用」的預建 Workers (如 iii-http, iii-state)。目前其生態系仍在早期階段。
  3. 大規模效能未知:面對數千個 Worker 的高負載、跨區域 (Multi-region) 部署與網路分割 (Network partition) 時,單一引擎的效能特徵仍需生產環境的壓力測試證明。

總結與結論