我试图理解sagas,同时我对它们有一种特定的思考方式——但我不确定我的想法是否正确。因此,我想详细说明并让其他人告诉我这是对还是错。
在我的理解中,sagas 是解决如何为长时间运行的流程建模的问题。长时间运行意味着:涉及多个命令、多个事件以及可能的多个聚合。该过程不在参与聚合之一内建模,以避免它们之间的依赖关系。
基本上,saga 只不过是对内部和外部命令/事件做出反应的命令/事件处理程序。它不包含自己的逻辑,它只是一个(有限)状态机,因此提供了诸如当事件 X 发生时,发送命令 Y等任务。
Sagas 被持久化到事件存储以及聚合中,与特定聚合实例相关联,因此在使用该特定聚合(或一组聚合)时会重新加载。
这是正确的吗?