Ehsan Ghanbari

Experience, DotNet, Solutions

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".

About Me

Ehsan Ghanbari

Hi! my name is Ehsan. I'm a developer, passionate technologist, and fan of clean code. I'm interested in enterprise and large-scale applications architecture and design patterns. I spend a lot of time on software architecture. Since 2008, I've been as a developer for different companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the past years, Read More

Post Tags
Pending Blog Posts
using Elmah in asp.net MVC4
Using FluentSecurity in MVC
Strategic design
Factory Pattern
time out pattern in ajax
Redis as a cache server
How to use PagedList In asp.net MVC
Multiple submit buttons in asp.net MVC
Domain driven design VS model driven architecture
What's the DDD-lite?
comments powered by Disqus