把資料主導權搬回使用者端
Johannes Schickling 從 Prisma 熟悉的三層式架構反向思考:別再讓所有操作都等伺服器回應,而是把資料與主要運算放回客戶端。他以音樂策展工具 Overtone 實驗 client-side event sourcing,透過 SQLite 保存事件及本機狀態,再把同步與雲端備份放到後面處理。實際效果是即使離線,使用者仍能瀏覽、編輯與累積操作;連線恢復後再同步,互動感受更接近 Apple Notes 這類原生軟體。
現實應用
這套思路適合筆記、任務管理、音樂或照片整理、現場採集,以及網路品質不穩定的行動工具。需要即時回應、離線工作、跨裝置同步或資料可攜性的產品團隊會最有感。反過來說,銀行交易、集中式庫存或所有操作都必須由伺服器即時裁決的系統,不一定值得硬套 Local-First。
Event sourcing 會保留操作歷史,方便重播、除錯與建立不同資料視圖;CRDT 則更擅長多人同時編輯時自動合併衝突。兩者不是誰取代誰,而是依協作需求、歷史追蹤與資料模型複雜度選擇。
期望評估
低標期望方面,我認為至少能換到更快的介面回應、基本離線能力,以及伺服器短暫故障時仍可工作的韌性,但團隊得先接受同步、資料切分與版本遷移變複雜。
高標期望方面,我猜成熟後可以讓 Web App 具備接近原生軟體的可靠度,同時保留跨裝置與雲端備份,甚至讓使用者更容易匯出、保管自己的資料。不過這需要從資料模型開始設計,並非加一層快取就能完成。
商業策略分析
最先受影響的會是以中央 API 與雲端資料庫為核心的 SaaS 工具鏈。Prisma 代表的是成熟的 server-first 開發體驗;LiveStore、SQLite 同步方案與 CRDT 工具則在爭取新的應用資料層位置。
我認為值得跟進,但比較適合先挑單一功能驗證,例如離線草稿或本機搜尋,而不是直接重寫整套產品。商業意義不只在省延遲,更在於產品能否用「離線可靠、資料可攜、使用者保有資料」做出差異;若使用情境沒有這些需求,新增的架構成本很可能大於收益。