首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遗留系统上的CQRS和慢速命令

遗留系统上的CQRS和慢速命令
EN

Stack Overflow用户
提问于 2015-10-26 08:41:12
回答 1查看 185关注 0票数 0

我是CQRS的新手,我想知道如何在遗留系统上实现这一点。

我有一些问题:

  1. 数据库将保留在遗留系统中。我猜对吧,我们对事件源没有任何用处?
  2. 有些命令执行起来需要时间(从几秒钟到几分钟不等)。我们如何使用CQRS来处理它?

我希望从以下几个方面解决这个问题:

  1. 客户端发送UpdateSomeDataCommand
  2. UpdateSomeDataHandler创建一个从遗留系统检索数据的新线程。
  3. 客户端使用读取模型获取缓存的数据并将其呈现给用户。
  4. UpdateSomeDataHandler准备好检索数据时,它会发送SomeDataUpdated事件。
  5. 读取模型对SomeDataUpdated作出反应,并将新数据存储在缓存数据库中。
  6. 读取模型使用INotifyPropertyChanged通知客户端已更新的数据可用。
  7. 客户端从读取模型中检索更新数据,并将其呈现给用户。

感觉好像我做错了。但我想不出比这更好的了。

EN

回答 1

Stack Overflow用户

发布于 2015-10-26 08:59:12

  1. 我们不能告诉你你是否需要事件源。有很多技术可以实现事件源所做的事情。它只是一个“数据库”,所有的命令都存储在数据库中,这些命令可以改变数据库中的任何内容。您可以将其用于分析或调试或倒带播放场景(同样用于业务目的、分析或调试)。所以这取决于你想做什么。你不需要事件-采购,因为有事件-采购。
  2. 问问自己你想实现什么。你的路看上去不错。但我们不知道这样做是否合适。步骤1、2、4和5有些强制性。在我看来,3,6和7看上去就像你在判断如何处理中间的信息。这完全依赖于您正在处理的业务模型。如果这是强制性的,那么这是一个好办法。

让它听起来更清晰一点。您只是将命令分配给一个特定的服务,该服务负责一个命令数据库。到目前一切尚好。读取数据库(前端用户)必须知道对实体发出了大量命令吗?当新数据在读取数据库中可用时,是否需要通知前端?这样它就可以自动加载前端中的新数据了吗?

如果是的话-你的方法很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33341536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档