5

Java中的事件溯源简介:包含学习进度的练习工具包

 1 year ago
source link: https://www.jdon.com/61476
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java中的事件溯源简介:包含学习进度的练习工具包
事件溯源被认为是一种复杂的模式。事实上,事件源是一个相当实用和直接的概念。它有助于建立更贴近业务的可预测的应用程序。如今,存储很便宜,而信息是无价的。在事件源中,没有数据会丢失。

本工具包目的是为参与者建立关于一般概念及其相关模式的知识。获得的知识将允许有意识地设计架构解决方案和分析相关风险。

重点将放在对架构的务实理解上,并在实践中使用Marten和EventStoreDB来应用它。

  • 事件驱动架构的介绍。与经典方法的区别是基础和术语(事件、事件流、命令、查询)。
  • 什么是事件源,它与事件流有什么不同。优点和缺点。
  • 写入模型,来自Marten和EventStoreDB的例子的数据一致性保证。
  • 处理业务逻辑的各种方法。聚合、命令处理程序、功能方法。
  • 在Marten和EventStoreDB的例子中,从事件中建立读取模型的预测、最佳实践和关注点。
  • 事件源和EDA中的挑战:可交付性保证、事件处理的顺序、空闲性等。
  • Saga, Choreography, Process Manager, 分布式进程的实践。
  • 应用架构中的事件源,与其他方法(CQRS、微服务、消息传递等)的整合。
  • 事件建模中的好的和坏的做法。
  • 生产中的事件源,演变,事件的模式版本等。

练习01、事件建模
具有以下购物车流程:

  1. 客户只有在打开产品后才能将产品添加到购物车中。
  2. 在选择产品并将其添加到购物篮时,客户需要提供选择的数量。产品价格由系统根据当前价目表计算得出。
  3. 客户可以从购物车中移除具有给定价格的产品。
  4. 客户可以确认购物车并开始订单履行流程。
  5. 客户也可以取消购物车并拒绝所有选择的产品。
  6. 购物车确认或取消后,该产品将无法再从购物车中添加或移除。

对在此过程中发生的事件和表示购物车当前状态的实体进行建模。用代码编写这些事件。创建代表特定购物车的示例事件。您可以在EventsDefinitionTests测试文件中执行此操作。

练习 02 - 从事件中获取当前实体状态
具有定义的事件结构和表示上一个练习中的购物车的实体,填充一个getShoppingCart将从事件重建当前状态的函数。
如果需要,您可以修改事件或实体结构。
有两种变体:

选择您的首选方法(或两者)来解决此用例。
提醒:在事件溯源中,我们通过按出现顺序应用事件数据来重建当前状态

信息登记表


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK