boe*_*bot 5 cqrs event-sourcing nestjs
我正在制作一个需要使用 NestJS 的 CQRS 模块的应用程序,因为需求自然适合该模式。
应用程序逻辑的更新预计会很频繁,并且会在繁忙时间发生(这就是我的管理工作方式......),因此应用程序需要能够正常重启。然而,这意味着在关闭之前开始的事件可能不会完成,或者即使它们完成了,由于在重启之前发生了一些事件,一些传奇可能不会触发......我想确保不会发生。
我知道 NestJS 的 OnApplicationShutdown 和 OnApplicationBootstrap 挂钩,这正是为此目的,但我不确定我应该在那里做什么。如何捕获所有具有未完成处理程序和传奇的事件?然后重启后,如何让事件总线知道sagas监控的事件,而不执行已经执行的处理程序?
我想第二部分可以使用每个事件/处理程序组合的随机 ID 来解决,这将在日志中查找,如果存在,将跳过处理程序,如果没有,它将被执行并添加到日志...但即使有这样的解决方法,我也不知道如何做第一部分。会有很多事件,sagas(根据定义)执行命令,这意味着它们有副作用......即使所有命令都可以成为幂等的,事件的绝对数量和频繁重启意味着从第一个命令重新启动是一个不行。
我见过这个包,但我不确定它是否解决了这个特定的用例,或者它是否真的只是记录事件,仅此而已。
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |