Spring Boot和EventStoreDB事件溯源案例
使用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時。
點選標題
相關文章
- 使用EventStoreDB實現事件溯源的Java開源專案事件Java
- 使用EventStoreDB實現事件溯源的Python開源專案事件Python
- GitHub - soooban/AxonDemo: 使用Axon/Spring Cloud實現事件溯源和CQRS案例GithubSpringCloud事件
- Spring Boot 事件和監聽Spring Boot事件
- Spring Boot(三):Spring Boot中的事件的使用 與Spring Boot啟動流程(Event 事件 和 Listeners監聽器)Spring Boot事件
- Spring Boot 之事件(Event)Spring Boot事件
- 事件協作和事件溯源事件
- 事件流與事件溯源事件
- PHP 事件溯源PHP事件
- 使用AsyncAPI規範簡潔實現CQRS事件溯源案例API事件
- 剖玄析微聚合 - 事件溯源事件
- 基於事件溯源與CDC的事件驅動微服務架構案例原始碼事件微服務架構原始碼
- Spring Boot和Netflix DGS的GraphQL原始碼案例Spring Boot原始碼
- Spring Boot 整合 Spring Security 入門案例教程Spring Boot
- 如何遷移到微服務和事件溯源EventSourcing微服務事件
- Apache Camel與Spring-boot和Kafka的整合開源案例ApacheSpringbootKafka
- 事件溯源全指南 - Arkwrite事件
- 事件溯源不是什麼?事件
- Spring Boot 整合 FreeMarker 詳解案例Spring Boot
- Spring Boot 實現非同步事件EventSpring Boot非同步事件
- 事件消費者之 Projector - 事件溯源事件Project
- 事件消費者之 Reactor - 事件溯源事件React
- 無伺服器與事件溯源結合的演示案例:將事件溯源作為Azure函式的資料持久化機制的庫伺服器事件函式持久化
- Spring Boot + GraphQL建立API的開源案例Spring BootAPI
- 事件消費者之 Saga - 事件溯源事件
- 使用Kafka實現事件溯源Kafka事件
- Rust中的事件溯源 - ariseyhunRust事件
- Spring Boot應用程式事件教程 - reflectoringSpring Boot事件
- 使用Spring Cloud Stream和Spring State Machine建立事件驅動的微服務案例SpringCloudMac事件微服務
- 事件溯源在物聯網裝置資料同步中應用案例 - eventstore事件
- 基於Istio/gRPC/Redis/BigQuery/Spring Boot/Spring Cloud和Stackdriver的微服務案例RPCRedisSpring BootCloud微服務
- 最全面的CQRS和事件溯源介紹 - Software House ASC事件
- 在Spring Boot實現國際化的案例Spring Boot
- Spring Boot 2.0 新特性(二):新增事件ApplicationStartedEventSpring Boot事件APPdev
- Chronicle事件溯源的最佳實踐事件
- Occcurrent:JVM事件溯源工具庫包JVM事件
- .NET分散式Orleans - 6 - 事件溯源分散式事件
- 事件溯源中的時間和時間建模 - Tomasz Jaskula事件