帖子
avatar

一個工作流程可以完美完成,但仍然讓外部世界處於錯誤狀態。 假設一個圍繞 @RialoHQ 建立的自動化商業應用程式收到最後一件庫存商品的訂單。 工作流程成功完成:付款已結算,訂單已確認,客戶收到收據。從區塊鏈應用程式的角度來看,一切似乎都已結束。 但倉庫 API 從未收到最終的庫存更新。 鏈上狀態現在顯示該商品已售出。 而倉庫仍顯示有 1 件可用。 幾分鐘後,另一個系統讀取倉庫庫存,並試圖再次銷售同一件商品。 原始交易內部並未出現任何失敗。問題在於,兩個本應描述相同現實的系統已產生分歧。 這正是「對帳」概念在思考圍繞 Rialo 建立的應用程式時變得有趣的關鍵所在。 當軟體與外部 API、資料庫、支付系統及其他現實世界服務互動時,成功執行並不總是能保證每個連接的系統最終都處於預期狀態。 因此,應用程式可能需要超越「我的操作是否成功?」的問題,最終問出:「外部世界現在是否反映了應該發生的情況?」 如果應用程式預期庫存從 1 → 0 變動,它可以將此預期結果與外部系統報告的狀態進行比對。如果倉庫仍報告為 1,這種不一致便成為應用程式可以識別並處理的問題,而非默默假設所有系統仍保持同步。 同樣的問題也出現在支付、預訂、物流及其他許多鏈上執行與鏈下系統互動的工作流程中。 這創造了一個重要的區分: 執行告訴你應用程式做了什麼。 對帳告訴你現實是否如應用程式所預期般達成。 對於日益將區塊鏈執行與外部世界連接的應用程式而言,這兩者都至關重要。 因為完成工作流程是一回事, 確保每個連接的系統對發生了什麼達成共識,則是另一回事。

此內容僅供資訊及教育用途。內容可能包括第三方見解、贊助內容或推廣材料,而創作者可能因此獲得報酬。本資訊流中的任何內容均不構成投資建議或收益保證。您須自行對投資決策負全責。交易前,請務必自行研究並審慎行事。我們不保證第三方資訊的準確性,亦不會對因此產生的任何損失承擔責任。過往表現並不代表未來結果。詳情請參閱我們的 社群條款 及 風險披露聲明。

avatar發佈你的回覆

評論