I’m getting a bad feeling about yet another high-brow architecture. CQRS is a complex solution to a complex problem.
Your problem is not complex enough to warrant the overhead of a complex solution
For the 1% of people who can rightly say “but my problem is complex enough” ask yourselves this: is it really that complex? I mean really.
Be honest now. Are you jumping at the latest architecture all the cool kids are talking about? Do you have twenty message buses passing data around because your intranet application might need to scale to millions of users one day? If you do, you probably don’t need CQRS for technical reasons but because you’re an architecture addict.
If you’ve got this far you either really do need to use CQRS or you have serious problem. So ask yourself this, you’re probably an architect or senior developer. Can the rest of your team fully understand the directions you’ll be giving from your ivory tower? If half of them can’t you are choosing the wrong architecture. I don’t care if it fits your problem perfectly. If your team can’t handle it, it’s the wrong choice.
If you still think CQRS is the right solution then you are in a very select group. You have a complex domain, scaling is a big problem for you and you have a team capable of taking the burden of a complex solution. Are you hiring?
That or you’re completely deluded.
Or you are a SOA consultant that is selling CQRS as the silver bullet for all development problems.
And I hate you.