Java中的事件溯源簡介:包含學習進度的練習工具包
事件溯源被認為是一種複雜的模式。事實上,事件源是一個相當實用和直接的概念。它有助於建立更貼近業務的可預測的應用程式。如今,儲存很便宜,而資訊是無價的。在事件源中,沒有資料會丟失。
本工具包目的是為參與者建立關於一般概念及其相關模式的知識。獲得的知識將允許有意識地設計架構解決方案和分析相關風險。
重點將放在對架構的務實理解上,並在實踐中使用Marten和EventStoreDB來應用它。
- 事件驅動架構的介紹。與經典方法的區別是基礎和術語(事件、事件流、命令、查詢)。
- 什麼是事件源,它與事件流有什麼不同。優點和缺點。
- 寫入模型,來自Marten和EventStoreDB的例子的資料一致性保證。
- 處理業務邏輯的各種方法。聚合、命令處理程式、功能方法。
- 在Marten和EventStoreDB的例子中,從事件中建立讀取模型的預測、最佳實踐和關注點。
- 事件源和EDA中的挑戰:可交付性保證、事件處理的順序、空閒性等。
- Saga, Choreography, Process Manager, 分散式程式的實踐。
- 應用架構中的事件源,與其他方法(CQRS、微服務、訊息傳遞等)的整合。
- 事件建模中的好的和壞的做法。
- 生產中的事件源,演變,事件的模式版本等。
練習01、事件建模
具有以下購物車流程:
- 客戶只有在開啟產品後才能將產品新增到購物車中。
- 在選擇產品並將其新增到購物籃時,客戶需要提供選擇的數量。產品價格由系統根據當前價目表計算得出。
- 客戶可以從購物車中移除具有給定價格的產品。
- 客戶可以確認購物車並開始訂單履行流程。
- 客戶也可以取消購物車並拒絕所有選擇的產品。
- 購物車確認或取消後,該產品將無法再從購物車中新增或移除。
對在此過程中發生的事件和表示購物車當前狀態的實體進行建模。用程式碼編寫這些事件。建立代表特定購物車的示例事件。您可以在EventsDefinitionTests測試檔案中執行此操作。
練習 02 - 從事件中獲取當前實體狀態
具有定義的事件結構和表示上一個練習中的購物車的實體,填充一個getShoppingCart將從事件重建當前狀態的函式。
如果需要,您可以修改事件或實體結構。
有兩種變體:
- 使用可變實體:Mutable/GettingStateFromEventsTests.java,
- 使用完全不可變的結構:Immutable/GettingStateFromEventsTests.java。
選擇您的首選方法(或兩者)來解決此用例。
提醒:在事件溯源中,我們透過按出現順序應用事件資料來重建當前狀態
資訊登記表
相關文章
- java學習進度Java
- Java學習:JDBC簡介JavaJDBC
- Java學習--JavaWeb簡介JavaWeb
- Java學習進度報告Java
- jquery學習手記(10)事件簡介jQuery事件
- Java學習--Jsp簡介JavaJS
- 學習進度
- Java進階學習之事件響應Java事件
- 4.24學習進度
- 4.25學習進度
- 4.29學習進度
- 學習進度條
- 5.7學習進度
- 3.28學習進度
- 4.2學習進度
- 4.3學習進度
- 5.21學習進度
- Java學習之陣列練習Java陣列
- java學習室SCJP線上練習Java
- 思考追根溯源的學習方法
- 深度學習中的貝葉斯統計簡介深度學習
- Rust中的事件溯源 - ariseyhunRust事件
- 學習Java: Java中的字串Java字串
- 學習進度 (待續)
- Bootstrap學習 進度條boot
- 0528學習進度條
- 學習進度總結
- 4.22學習進度
- 4.23學習進度
- 4.26學習進度
- 4.30學習進度
- 3/5學習進度
- 3/7學習進度
- 5.20學習進度
- Java學習之流程控制練習Java
- Java學習中迴圈語句的學習Java
- PHP + MySQL 學習筆記(七)--- jQuery 及 jQuery Mobile 簡介 + 兩個 練習PHPMySql筆記jQuery
- Java進階學習之Java架構師的學習路線Java架構