# 策展 · X (Twitter) 🔥

> 作者：Electric (@ElectricSQL) · 平台：X (Twitter) · 日期：2026-03-27

> 原始來源：https://x.com/electricsql/status/2037534799238455443

## 中文摘要

StreamDB 是一款為人工智慧應用與 Agent 系統打造的反應式資料庫，將持久流（Durable Stream）轉化為具有類型安全、即時同步的狀態管理層。

**核心設計理念**

StreamDB 透過將標準Schema與持久流整合，為 AI 應用和 Agent 系統提供統一的狀態管理方案。傳統做法需要手工組合資料庫、發佈/訂閱層、自訂同步邏輯和重試機制，導致每個專案都成為獨特的堆疊。StreamDB 解決這個問題，讓開發者只需定義Schema，就能自動獲得型別化、同步且反應式的狀態管理——無需手工協調、缺乏型別安全或在斷線時狀態遺失。

**多工與路由機制**

StreamDB 將不同實體類型（訊息、使用者狀態、Agent 註冊等）路由到獨立的 TanStack DB collections，所有資料都寫入同一個流。持久流作為唯一真實來源，collections 透過順序應用事件來實現狀態。客戶端可從任意 offset 加入並快速追趕，完全支援多使用者、多分頁、多裝置和多 Agent 場景。

**即時反應性**

資料進入 TanStack DB collections 後，由基於微分資料流（differential dataflow）的即時查詢引擎來實現狀態物化。當流上有新事件抵達時，只有受影響的資料會重新計算，實現亞毫秒級反應速度。衍生 collections 可組合使用，支援篩選、聚合與跨 collection 的資料連結。

**持久性與容災**

底層持久流確保狀態永久存儲且可定址。斷線、重整、重啟時狀態均得以保留，客戶端從最後 offset 恢復，無需重新擷取資料或承受狀態遺失。

**實作流程**

- 用 Standard Schema 物件為每個實體類型定義結構，透過 `createStateSchema` 合併為統一Schema，將每種類型映射到具有主鑰的 collection
- 透過 `createStreamDB` 連接Schema與持久流，`preload()` 從流開始讀取、物化當前狀態、維持即時更新連線
- 用 `useLiveQuery` 將 collections 綁定到元件，查詢透過微分資流增量更新，避免重新掃描與重新渲染未變更列
- 衍生 collections 用於將流資料物化為高階結構（如將 token 塊組合為完整訊息），使用即時查詢管道增量更新

**樂觀寫入與事務機制**

寫入透過 TanStack DB 的樂觀動作系統進行。`onMutate` 立即向本地 collection 插入資料，UI 在網路往返前更新；`mutationFn` 則非同步將資料附加到持久流並等待同步回應。若寫入失敗，TanStack DB 自動回滾樂觀狀態。

**Agent 整合與自動化**

StreamDB 透過 TanStack Intent 提供 Agent 技能。安裝 Intent 系統後，npm update 會同步更新技能，编程 Agent 可一鍵在 Electric Cloud 上配置持久流並自動搭建 StreamDB。軟體工廠可在 Agent 工作流程中程式化地啟動會話狀態，無需手工基礎設施配置。

**技術基礎**

StreamDB 運行在持久流之上——一個為 Agent 會話資料設計的開放協議，提供持久、可定址、即時的流能力。Durable Sessions 示範展示了 StreamDB 如何消除樣板程式碼，讓衍生 collections 以增量、反應式的方式物化 token 塊成訊息狀態。

## 標籤

新產品, 開源專案, StreamDB
