使用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时。
点击标题