解決AI代理的狀態同步痛點
過去開發AI代理時,最頭痛的就是資料與任務的同步問題。當代理執行退款或調整庫存時,往往需要同時修改資料庫狀態並發送後續任務。若這兩個動作分散在不同系統,極易發生資料已更新但任務漏送,或是任務已送出但資料庫交易失敗的情況。開發團隊必須耗費大量精力處理這種「半完成」的狀態不一致,增加了系統複雜度與除錯難度。Google Spanner現在將訊息佇列直接整合進資料庫,讓這些操作能在同一筆交易中完成,大幅簡化了架構。
交易原子性與任務延遲執行
在新的架構下,當AI代理核准退款時,可以將訂單狀態改為「已核准」與加入退款執行任務放在同一筆交易裡。只有整筆交易成功提交,兩者才會同時生效;若交易失敗,兩者都會回滾。這確保了資料與任務的一致性。此外,系統支援透過SQL從佇列取得任務,並允許指定任務在未來某個時間點開始執行。例如,可以設定等待主管核准一段時間後,再自動升級處理流程,這對於需要較長時間呼叫外部服務或多步驟工作的AI代理來說,提供了更靈活的排程能力。
至少送達一次與版本支援
在訊息可靠性方面,Spanner保證訊息「至少送達一次」(at-least-once)。這意味著遇到網路波動或執行失敗時,同一項工作可能會重複出現。因此,應用程式必須自行設計防止重複處理的機制,特別是在退款或付款等關鍵操作上,不能預設外部服務只會執行一次。目前,Spanner原生訊息佇列功能僅開放給Spanner Enterprise與Enterprise Plus版本使用,而既有的變更串流功能則繼續負責持續擷取資料變化供下游分析使用。這顯示Google正逐步將複雜的分散式系統邏輯下沉至資料庫層,以簡化應用開發。