Does CQRS innately need Domain Driven Design?

It's a hard question to answer, or Not? Maybe that's because of my lack of DDD and CQRS understanding. Anyway I'm not sure about what I'm writing in this post to be right and if there is any mistake, please let me know to correct that.

To the best of my knowledge Domain Driven Design is so useful for successfully delivering CQRS based applications but you don't need DDD whenever you want to apply CQRS pattern. CQRS is not intrinsically linked to DDD. CQRS is just a pattern and you use CQRS in a bounded context of a DDD approach. Domain Driven Design allows you to break the complexity of the domain into separate blocks and if CQRS is another way to break the complexity of those blocks to simpler and understandable blocks, you can use it; you can also use CQRS in the whole of your system. CQRS was born in the world of Domain Driven Design and as I mentioned it's not a pattern to encompass the whole application.

"CQRS is a pattern for Task based UI systems" I'm completely sure that You have heard this so many times, haven't you!? Remember that CQRS is a good way to implement task based User interfaces but you can apply CQRS in a CRUD based UI too and task based UI is not part of CQRS. Greg young once blogged a nice post, you can see in the post that "interesting stuff is not really the CQRS pattern itself but in the architectural decisions that can be made around it".


Tags: Design Pattern DDDesign


comments powered by Disqus