<div id="ng5vq"><tr id="ng5vq"></tr></div>

  • <div id="ng5vq"></div>

      <em id="ng5vq"></em>
      <div id="ng5vq"></div>

          專注區塊鏈信息及金融服務

          解析以區塊鏈為持久層的CQRS模型作用(下)

          區塊鏈研究實驗室 ·

          02月11日

          熱度: 10545

          命令查詢的責任分離Command Query Responsibility Segregation (簡稱CQRS)模式是一種架構體系模式,能夠使改變模型的狀態的命令和模型狀態的查詢實現分離。

          CQRS簡述

          命令查詢的責任分離Command Query Responsibility Segregation (簡稱CQRS)模式是一種架構體系模式,能夠使改變模型的狀態的命令和模型狀態的查詢實現分離。


          因此,我們將使用命令模型來更新狀態,使用查詢模型來獲取狀態。

          CQRS通常與 Event-Sourcing一起使用,但不一定要一起使用。 Event-Sourcing確保在事件對象中捕獲狀態的每個更改并保持不變。

          Event-Sourcing有一些我們想要應用于區塊鏈的預期好處。

          • 完全重建:我們可以重建應用程序狀態,從空應用程序的事件日志中重新運行事件。

          • 時間查詢:我們可以確定特定時間應用程序的狀態。

          • 事件回放:如果某些事件出現錯誤,我們可以計算得出后果并給以修復。

          對于以上的應用,利用區塊鏈技術是非常難實現的;

          什么是事件日志?這是一個保存所有事件的數據庫。

          命令和事件不包含邏輯,只包含數據。它們是數據傳輸對象(DTO)。

          命令顯示更改狀態的意圖。事件分享發生的事件,這是一個巨大的差異。命令可能會失敗,同時事件會反映系統中已經發生的事情。

          為什么將CQRS模型與區塊鏈一起使用是有意義的?

          我們需要代表一個應該隨著時間的推移改變其狀態并且仍然使用區塊鏈的商業事物。


          CQRS模型幫助我們定義一組命令,我們將存儲在區塊鏈上,并使用公共API發布我們的查詢模型。

          在鏈上存儲命令有助于我們重新創建狀態并審核第三方提供的狀態緩存,以確定它是有效還是無效。

          共享命令有助于我們快速讓其他人了解如何通過可信網絡與我們的域模型進行交互,而無需共享我們的域模型內部邏輯。

          作為一個團隊,我們可以選擇我們想要的共享信息級別。


          案例 - 共享命令:

          人們將需要

          a)依靠我們的API來閱讀;

          b)模擬我們的模型邏輯以防出現問題并證明我們在作弊;

          案例 - 共享命令和模型邏輯:

          人們將

          a)依靠我們的API來閱讀;

          b)創建一個應用程序來執行我們的模型邏輯而不依賴于我們的API;


          案例 - 共享所有應用程序:

          人們將 

          a)依賴我們的API來閱讀 ;

           b)在他們的終端啟動所有應用程序而不使用我們;

          共享模型邏輯和一切都有一個灰色限制。

          在我們的例子中,我們選擇共享命令和模型邏輯。我們希望其他人能夠自己執行此操作,并依賴于我們的某些特定邏輯,如復雜的查詢模型。


          使用CQRS模型,我們能夠以不同的方式擴展命令模型和查詢模型。我們希望系統快速響應復雜的查詢,但我們不介意慢寫,因為資產創建或管理不像讀取數據那么頻繁。

          此外,這種方法允許我們選擇只是共享命令。對于選擇分享內容和不分享內容的公司而言,這一點非常重要。

          想象中的公司差異化是如何管理信息,而不是控制資產創造。


          聲明:本文為入駐“火星號”作者作品,不代表火星財經官方立場。轉載請注明出處、作者和本文鏈接
          提示:投資有風險,入市須謹慎。本資訊不作為投資理財建議。

          推廣
          相關新聞

          漲幅榜

          你可能感興趣的內容
          下一篇

          ChainDesk:MVC架構應用實現

          河北十一选五软件