I have moved my active blog over to tumblr. I've maintained this blog for reference but will be posting to http://www.robustsoftware.co.uk instead. I've pointed my Feedburner feed to tumblr so if you're subscribed already you should already have switched with me.

CQRS: Crack for architecture addicts

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.