【问题标题】:What drawbacks are there if we fire events after projection?如果我们在投影后触发事件有什么缺点?
【发布时间】:2020-01-28 08:08:03
【问题描述】:

一些项目背景 - 仅供参考

在我们的系统中,我们对黄瓜进行了一些验收测试。在测试运行中,我们使用完全设置的微服务系统(本地机器)。事件溯源由 Axon Event Store 管理。

场景

我们将命令应用于聚合并触发业务事件。投影被实现为事件处理程序。 其他服务正在监听业务事件并读取写入的数据 (REST)。

我们这样做是为了让我们的活动保持小规模。

为了克服业务事件和投影之间的最终一致性周期,而读取发生在其他服务中,我们在黄瓜步骤中有许多语句,例如

Thread.sleep(5000L);

但睡眠值取决于底层硬件的性能指标。所以测试很脆弱。

问题 投影写入数据后是否可以选择触发事件?所以我们可以在保证真实性的情况下读取数据。

【问题讨论】:

    标签: event-sourcing cucumber-java axon eventual-consistency


    【解决方案1】:

    仅仅为了同步你的读取模型而触发事件(通过你的领域层)对我来说听起来有点像。我建议您可以订阅您的读取模型并在同步时收到通知。我们已经实现了与STOMP 类似的东西。

    在我们的例子中,我们的前端订阅用户购物车并接收其更新。

    编辑:

    当然你也可以使用axon-servers 查询总线。如果您买不起完整的集群,您仍然可以将您的事件存储在其他地方(jpa、jdbc、mongodb)并配置您的查询总线以使用免费的标准版axon-server

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-06
      • 2021-05-27
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多