Udi Dahan discusses the Command Query Responsibility Segregation (CQRS) pattern and its relationship to Domain Driven Design (DDD), detailing on queries and commands, what they are and how they should be used in an asynchronous programming environment.
Udi Dahan is The Software Simplist, an expert on software architecture and design. A Solutions Architecture and Connected Systems MVP 4 years in a row, Mr. Dahan is also one of 33 experts in Europe recognized by the International .NET Association, an author and trainer for the International Association of Software Architects, and an SOA/Web Services/XML Guru recommended by Dr. Dobbs Journal (DDJ).
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
And the same question about lack of data in domain entities if we already store it in the views. Again we have to do some complex migration from query source to core data storage.
View database updates?
None the less, the thirst question that came from almost anyone who we presented the concept to was:
What about users editing theyr own account information? Let’s say user changes his address, closes browser and then remembers he forgot to change house number. It’s going to be frustrating if he opens his account information and bum – the information he just entered is not there (just because the view database is not yet up to date)!
Yes this might be a rear use case, but the frustration level as I can imagine might be … well let’s say high.
What I want to say, the concept is good as long as there are no data updates going on in the system. I can hardly imagine let’s say ERP system without updates, that needs to be reviewed right away after they are done. What is your solution to this scenario?
He may have interesting observations on current processes, but we're not stupid, it's not like he's unveiling a big secret here.
And if we changed our minds and built another architecture, we wouldn't have to do all those tweaks. I'll definitely try to use more of this approach in my next project.