cqrs - 我们是否需要在 CQRS 中混合使用同步和异步命令处理程序?

标签 cqrs

  • 用户在我们的站点上注册并登录。RegisterUserCommand 被发送到异步命令处理程序。
  • 用户想要更改他们的地址,但 RegisterUserCommand 尚未处理。系统中没有用户记录。

  • 这是同步命令处理程序的情况吗?将在验证用户之前创建用户记录。还是我应该在注册后重新考虑对真实用户的要求?在创建帐户之前,用户将无法访问该网站。如果用户不能立即访问系统,则使用率可能会下降。
    在 CQRS 系统中混合使用同步和异步命令处理程序是否常见?

    最佳答案

    我有 一切以异步方式运行 .为了简单起见,队列是先进先出的;另外,每个分区有一个处理线程。这边命令总是按照发送的顺序处理 .另外,我们仍然具有可扩展性,因为每个分区的线程可以简单地变成每个分区的机器,而无需重新分区整个解决方案。

    在某些情况下,我们可能需要同步处理(在我的示例中,初始用户注册是用户注册,因为我们需要在服务器上验证一些内容才能让他继续操作)。在这种情况下,命令发送后,用户会看到“请稍等几秒钟,正在处理您的注册”。一旦注册被确认(或失败),用户就会自动进入下一个屏幕。这对于 Web UI 中的 AJAX 来说是微不足道的。桌面 UI 更加简单。

    关于cqrs - 我们是否需要在 CQRS 中混合使用同步和异步命令处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719223/

    相关文章:

    c# - Service Locator 是可插拔架构中的反模式吗?

    php - 如果目前实际上没有必要,是否愿意将大命令分解为较小的命令?

    java - 命令消息-分类设计问题

    c# - c# 代码中的动态 SQL 查询?

    c# - IRequestHandler 返回 void

    .net - 具有事件溯源的领域模型

    mvvm - 可移植类库、MVVM 和 DDD 如何协同工作?

    c# - 如何装饰 MediatR 处理程序

    azure-functions - 具有事件溯源和 CQRS 的聚合

    cqrs - 对 React 的 Flux 架构感到困惑 - waitFor