InfoQ Homepage Presentations Command-Query Responsibility Segregation
Command-Query Responsibility Segregation
Summary
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.
Bio
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).
About the conference
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.
Community comments
Re:
by Maxim Tihobrazov,
View database updates?
by Dandik M,
Slides
by Ashwin Jayaprakash,
Annoying tone
by Wouter Vos,
Udi Dahan is not a good researcher
by Pedro Gonzalez,
Thanks a lot.
by Tobias Juderjahn,
Good stuff
by Dmitry Novoselov,
boring
by Mohamed Ramadan,
OMG...shoot me!
by Everett Fitzgibbons,
Re:
by Maxim Tihobrazov,
Your message is awaiting moderation. Thank you for participating in the discussion.
How to change the system if requirements changed for a particular view? For example we need additional data for a particular view that is already exists and the data is already somewhere in other views and core domain, but it is quite complex to retrieve it?
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?
by Dandik M,
Your message is awaiting moderation. Thank you for participating in the discussion.
I really like the concept. We’ve been pushing a lighter version of it in one of our projects.
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?
Slides
by Ashwin Jayaprakash,
Your message is awaiting moderation. Thank you for participating in the discussion.
InfoQ should really start uploading the slides separately along with the vids. Even something embedded like scribd if not raw PDFs would be nice. Who has the time to watch every vid?
Annoying tone
by Wouter Vos,
Your message is awaiting moderation. Thank you for participating in the discussion.
This guys sounds like he's talking to small children. Very annoying.
He may have interesting observations on current processes, but we're not stupid, it's not like he's unveiling a big secret here.
Thanks a lot.
by Tobias Juderjahn,
Your message is awaiting moderation. Thank you for participating in the discussion.
Great!
Good stuff
by Dmitry Novoselov,
Your message is awaiting moderation. Thank you for participating in the discussion.
We use pre-calculated views, but very restrictedly. We only do that when we just can't prepare what is needed to be shown to a user in reasonable amount of time. Then we say something like "Oh God, they want it to show in just 10 seconds. We have no choice but to pre-calculate the screen and store it in the database." And we try to avoid pre-calculation doing a lot of caching and other technical tweaks. But it really seems like it should be a default option.
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.
Udi Dahan is not a good researcher
by Pedro Gonzalez,
Your message is awaiting moderation. Thank you for participating in the discussion.
Udi Dahan is not a good researcher and as other commenters say he does not know what he is talking about.
He presents many incoherent topics without delivering any value.
boring
by Mohamed Ramadan,
Your message is awaiting moderation. Thank you for participating in the discussion.
man you're boring like F*** !
OMG...shoot me!
by Everett Fitzgibbons,
Your message is awaiting moderation. Thank you for participating in the discussion.
Way to talkative and I fell asleep listening to the presentation. Just get to the points...yawn, yawn