2010-08-01 82 views
5

我们正在尝试CQRS和DDD以及事件采购。比方说,我有一个客户更新了一个电子邮件地址,该地址触发了CustomerUpdatesEmailAddress事件,这通过我的操作(写入数据库)并更新表格。我们的系统被设计成有一个运行ETL的进程,用于运行数据并更新数据库(这是一个读取数据库)。由于ETL可以根据被更改的电子邮件地址进行一些繁重的工作(电子邮件地址就是一个例子),我们如何同步报告数据库(DataMart和操作端),因为用户想要立即在屏幕上看到电子邮件地址更新?CQRS,DDD同步报告数据库

回答

13

this podcast(幻灯片47例如)Udi Dahan指出客户端不必等待读取站点得到更新。客户可以“伪造”它。因此,例如,如果用户更改他或她的电子邮件地址,则客户端可以从其发送的命令中获取新地址,并在之前将其显示给用户,该命令实际上已经被处理。

+1

+1这个答案。提问“为什么用户需要立即查看电子邮件地址?”更重要。如果是用户反馈,那么Mikael的答案应该足够时间为您运行ETL流程。 – stung 2010-08-19 17:26:25