Spring Boot和EventStoreDB事件溯源案例

banq發表於2022-03-30

使用Spring Boot和EventStoreDB的Event Sourcing:
案例展示了基本的事件追溯流程。它使用EventStoreDB進行事件儲存,使用Spring Data JPA支援PostgreSQL進行讀取模型。

所展示的用例是購物車流程:
  • 客戶只有在開啟購物車後才可以將產品新增到購物車中。
  • 當選擇和新增一個產品到購物籃時,客戶需要提供所選擇的數量。產品價格是由系統根據當前的價格表計算的。
  • 顧客可以從購物車中刪除一個給定價格的產品。
  • 顧客可以確認購物車,並開始訂單執行過程。
  • 顧客也可以取消購物車,拒絕所有選定的產品。
  • 在確認或取消購物車後,產品不能再被新增或從購物車中刪除。

從技術上講,它的模型是用Spring Boot和Java 17編寫的Web API。

 

概述

  • 純資料實體、函式和處理程式。
  • 儲存來自命令處理程式結果EventStoreDB的事件。
  • 使用Subscription to $all構建讀取模型。
  • 讀取的模型透過Spring Data JPA儲存到Postgres的關係表中。
  • 應用程式有Swagger和預定義的docker-compose來執行和播放樣本。

 

設計

  • 從寫模型(EventStoreDB)和讀模型部分(PostgreSQL和Spring Data JPA)解釋事件源的基礎知識。
  • 介紹你可以將經典的方法與事件源結合起來,而不需要進行大規模的革命。
  • CQRS架構按業務特徵劃分,將改變的程式碼保持在同一位置。請閱讀更多關於如何有效地切分程式碼庫的內容。
  • 為命令、事件、預測、查詢處理提供乾淨的、可組合的(純)功能,最大限度地減少對標記介面的需求。得益於此,可測試性和更容易維護。
  • 易於使用和不言自明的流暢的API,用於註冊命令和預測,並有可能的回退。
  • 將所有東西都註冊到常規的DI容器中,以便與其他應用服務整合。
  • 在邊緣推動型別/簽名的執行,所以當插入到DI時。


點選標題

相關文章