gpt4 book ai didi

CQRS - 最终一致性

转载 作者:行者123 更新时间:2023-12-04 14:06:42 25 4
gpt4 key购买 nike

我需要按照 CQRS 模式实现以下场景:

  • 用户登录
  • 用户输入一些保险详情
  • 用户要求应用决定
  • 用户查看决策结果

  • 这看起来相当简单,但是我的问题是在第 3 步和第 4 步之间,在第 3 步我发送了 ApplyForDecision命令将从承保服务获得决策,然后将具有该决策结果的事件发送到 BUS 以供读取存储稍后使用它并使用决策结果更新 View 表。

    问题出在 UI 上,我如何让用户知道正在应用决策,因为在 CQRS 中,读取模型不会“立即”更新,我如何让 UI 显示决策正在进行中,并且将“很快” ' 到达?

    我还需要让用户能够注销并重新登录,因为该决定可能尚未应用,我如何让 UI 显示“待决决策屏幕”?

    最佳答案

    答案是立即引发一个事件,指示已申请该决定,更新读取数据库并立即重定向到您的待决决定屏幕,无论此时读取数据库是否已更新。静态文本“将与您联系的待定决定”或类似内容。他们可以刷新或稍后返回,并且很有可能获得真实数据。然后当决定被决定时,你有一个 DecisionMade 事件并相应地更新读取的数据库,发送电子邮件,无论如何。

    这是您必须在 CQRS 中处理的最终一致性的权衡。通常,当我对表单上的域对象属性进行更改时,我会在用户获得的即时反馈中伪造它,而后端则执行其家务。是的,有点丑,但用户不知道。

    关于CQRS - 最终一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414277/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com