CQRS / ES-拉“未处理”事件

时间:2019-07-17 08:20:41

标签: php events cqrs event-sourcing saga

早上好

我有一个有界上下文,它需要两个方面,一个前端侧和一个后端侧。前端端必须可通过Web服务器使用,以允许用户发送以 AddObjectCommand ChangeObjectCommand DeleteObjectCommand < / strong> ...但是,由于Web服务器是通过非特权的Unix用户运行的,因此必须任务被委派给后端,后端可以在具有更高特权的文件系统上运行。

现在,流程如下:

前端

  1. UI-> AddObjectCommand -> ObjectAddedEvent
  2. 投影仪(监听 ObjectAddedEvent 进行投影-更新非规范化读取模型-通过UI显示“ AR ”状态,例如“已安排添加”)
  3. 处理器(监听 ObjectAddedEvent 以将请求发送到守护程序,该守护程序又执行后端)

必须注意,该守护程序基于类似SMTP的协议,并且既不能接收域消息(事件),也无法对其进行确认...前端侧的处理器只能知道请求是否成功。

后端

后端应该以某种方式对 ObjectAddedEvent 事件做出反应以进行相应的操作,然后完成后,发布 ObjectConfiguredEvent 事件或其他事件如果出现故障... 应该还通过其自己的投影仪更新读取的模型。

我在这里面临的问题是,当然,后端无法接收域消息(事件)。这只是守护进程启动的另一个进程(脚本)。

问题

如果可以的话,我应该如何从后端从事件存储中提取未处理的事件?如果不是,我应该只查询读取模型,然后从后端执行特定命令(通过 SAGA )?

谢谢。

0 个答案:

没有答案