原文出處:https://dev.to/lovestaco/good-bye-crud-apis-hello-sync-realtime-postgresql-with-electricsql-1f8j

API 的混亂:我們的互動是否過於複雜?

Web 應用程式上的每個操作都會觸發一系列網路呼叫。以在 Instagram 等社群媒體平台發佈貼文為例。開啟貼文會觸發 GET API 呼叫,點擊「讚」會觸發 POST API 呼叫,評論會引發另一個 POST API 呼叫。每次互動、每次點擊和每次提交都會從前端到後端發出一串 API 呼叫,以獲取或更新資料庫中的資料。

這種傳統的設定雖然實用,但卻在使用者介面和後端之間堆積了多層互動。每個新增的層都是潛在的故障點、延遲點或瓶頸。對於開發人員和工程師來說,管理這種複雜的 API 可能是一項日常工作。每個 API 呼叫都經過精心設計、測試和維護。時間和資源方面的開銷是真實存在的。

此外,另一端的使用者經常發現自己在等待這些網路呼叫完成,即使只是一瞬間。在速度和即時互動決定使用者體驗的時代,這些微小的延遲可能會累積起來,影響使用者的參與和滿意度。

現在,想像一個可以減少大量 API 呼叫的設置,一個允許與資料庫直接互動、消除延遲和混亂的設置。這就是 ElectricSQL (ESQL) 發揮作用的地方...

ElectricSQL:消除 API 混亂

ESQL 提出了一種更乾淨、簡化的方法。它與 Postgres DB 一起執行,減少了對多個 API 呼叫的需求。使用 ESQL,評論或投票等操作在瀏覽器本機儲存 (SQLite) 內的專用表中處理,然後與 Postgres 同步。此設定無需呼叫後端 API 將資料儲存到 Postgres,從而減少了通訊層數和相關延遲。前端和資料庫現在可以更直接、更有效率地互動。這簡化了開發人員的工作流程並加快了前端的使用者互動速度。現在讓我們看看這是如何實現的以及內部發生了什麼。

使用 Electric 實現瀏覽器和 Postgres DB 之間的交互

圖片描述

此圖示範了瀏覽器和 Postgres 資料庫之間透過_Electric 服務_進行的通訊路徑。本質上,Electric Sync Service,一個Elixir應用程式https://electric-sql.com/docs/intro/active-active 使用者本地資料庫與Postgres之間的資料複製。

瀏覽器透過 electric-sql 函式庫與本機資料庫互動。本地資料庫連接到Electric服務,Electric-SQL中有一個衛星,用於與_Electric服務_通信,並用於本地資料庫和Postgres之間的資料複製。

每當本地資料庫或 Postgres 中發生資料變更時,Electric 服務 都會充當衝突解決程序,確保無縫資料複製。此配置無需呼叫 API 來儲存評論或更新等新資料條目,從而簡化了資料互動過程。

繼續閱讀全文 https://journal.hexmos.com/reduce-apis-using-electric/


共有 0 則留言