我需要从使用者内部访问saga存储库,以读取与正在使用的消息相关的saga的当前状态。
场景:我有一个外部服务,当该服务消耗来自saga的事件时,我想知道佐贺是否仍然处于正确的状态,因为同时如果saga更改了其状态,则使用者必须跳过事件。
How:我当然可以查询通过使用其本机框架选择的saga存储库实现,但我希望使用抽象(接口)从使用者内部加载saga状态,以便将来能够切换到不同的存储库实现。
任何帮助都是非常感谢的。
发布于 2021-04-09 16:43:31
如果佐贺启动了命令,并将其发送给消费者,为什么消费者需要检查佐贺的状态?从发送命令到使用者能够处理命令之间是否有很长的延迟?
您所询问的检查类型与系统在处理命令时通常所做的操作背道而驰。如果您确实需要进行这类检查,我实际上建议使用请求客户机进行请求/响应交互,如果命令仍然有效,saga将响应该客户端。这样,佐贺存储库的逻辑(和锁定)仍然处于佐贺的控制之下。
如果需要的话,可以为该请求使用一个单独的端点,以确保它不会被备份到其他针对saga的消息后面。如果需要的话,发表评论,我会更新答案。
https://stackoverflow.com/questions/67024893
复制相似问题