某些项目环境-FYI
在我们的系统中,我们对黄瓜使用了一些验收测试。在测试运行中,我们使用一套完整的微服务系统(本地计算机)。事件源由Axon Event Store管理。
场景
我们将命令应用于聚合并引发业务事件。投影被实现为事件处理程序。其他服务正在监听业务事件并读取书面数据(REST)。
我们这样做是为了使活动保持较小。
为了克服业务事件和预测之间的最终一致性期,而在其他服务中进行读取时,我们在黄瓜步骤中有很多声明,例如
Thread.sleep(5000L);
但是睡眠值取决于基础硬件的性能指标。因此测试很脆弱。
问题投影写入数据后是否可以触发事件?这样我们就可以保证数据的真实性。
仅出于同步读取模型的目的而触发事件(通过您的域层)对我来说有点不可思议。我建议您可以订阅您的读取模型,并在同步它时得到通知。我们已经实现了与STOMP类似的功能。
在我们的例子中,我们的前端订阅了一个用户购物车并接收更新。