我正在努力理解传奇,同时我有一种特定的思考方式 – 但我不确定我的想法是否正确.因此,我想详细说明并让其他人告诉我这是对还是错.
根据我的理解,传奇是解决长期运行流程建模问题的解决方案.长时间运行意味着:涉及多个命令,多个事件以及可能的多个聚合.该进程未在其中一个参与聚合内建模,以避免它们之间的依赖关系.
基本上,saga只不过是一个命令/事件处理程序,它对内部和外部命令/事件作出反应.它不包含自己的逻辑,它只是一个(有限的)状态机,因此提供诸如事件X发生时的任务,发送命令Y.
Sagas持久存储到事件存储以及聚合,与特定的聚合实例相关联,因此在使用此特定聚合(或聚合集合)时会重新加载.
这是正确的吗?
有不同的方法来实现Sagas.从无状态事件处理程序到达,它们一直发布命令以承载所有状态,并且基本上是域的聚合本身. Udi Dahan曾写过一篇关于Sagas是(在他的具体情况下)正确建模系统中唯一的聚合物的文章.我会查一下并更新这个答案.
还有基于文档的传奇的概念.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。