CQRS 保存事件与日志记录
在一个复杂的业务操作过程中,用CQRS保存操作事件,和用log记录操作过程 ,有什么不一样呢,比如:用户A在10点修改了他的个人资料,此时由于系统异常 修改资料形成了涨数据;这个过程,如果用log记录 和CQRS实现 ,有什么不一样?
EventSourcing其实是一种Domain log,主要是来自界面的命令触发的事件。
如果说传统日志只是基于URL的记录,而在响应交互式UI中,有的一个URL中可以有不同命令调用,其实这也是事件驱动和传统CRUD或REST区别。
以http://www.jdon.com/44815中Match为案例,在Match中有handle事件的方法,当需要回放时,将数据库中的事件记录按顺序读取出来,直接调用这个handle方法即可。
当然,这个过程主要要控制顺序,可使用专门的EventStore框架如Scala的eventSourced。
http://www.jdon.com/45399
[该贴被banq于2013-05-15 08:44修改过]