我目前正在编写我的第一个 saga,我对读取模型有点困惑。让我们用一个例子来解释它:
我有三个有界上下文:编程、承包商和控制。它们中的每一个都有其特定的读取模型。
工作流程:
- 编程发送事件“ JobScheduled ”
- Saga收到此事件并告诉承包商“安排工作”。
- 完成后,承包商发送事件“ JobDone ”。
- Saga接收到这个事件并告诉控制“开始控制周期”。
事实证明这里一切都很好。我们处于写入端,因此我们正在传递重要信息以使流程继续进行。
我的问题带有不必要的信息。假设事件“ JobScheduled ”有一个备注字段:“测试备注”,在此作业完成之前,该字段更改为“测试备注重要”。这种变化对所描述的工作流并不重要,但重要的是,承包商在查看承包商有界上下文的读取模型时可能会看到现场的变化。
我是给传奇事件NoteChanged并对其进行处理,还是应该创建一个在我的承包商有界上下文中直接监听此事件的投影?
将它交给saga在我看来像是不必要的工作,因为我只是在这里更新 readmodel,没有涉及更改的域。
另一方面,在两个有界上下文之间进行直接耦合会删除 sagas 的一个资产,即修改有界上下文在工作流中彼此之间的交互的可能性。
感谢您的阅读,