细节:

  • 命令API处理为CQRS模式并将 Read Model 持久保存到Elasticsearch .

  • Observer-side通过Web API注册过滤条件 .

  • 如果满足过滤条件,则通过SignalR API将 Read Model 推送到观察者侧 .

关注:

  • 过滤条件必须使用Elasticsearch Query DSL,而不是应用程序端逻辑,因为它们是灵活且复杂的 .

  • 所以,在我的想法中,设置wait_for选项以等待索引 . 然后,查询Elasticsearch以检索匹配的 Read Model . 但是,它可能不具有可扩展性,也不是良好的模式 .

还有另外一种设计吗?或者,CQRS设计的错误点?