Thinking Differently About System Architecture

It’s great when a presentation/discussion gets an audience riled up. As some of the audience begin to understand the general ideas, another portion are very eager to challenge and debate each point being made. This of course makes an interestingly heated session but does slow down the intended pace of a presentation. Tonight was such a session at the Melbourne .NET user group, where Udi Dahan had a very thought provoking presentation about system architecture titled: Command Query Responsibility Segregation (CQRS).

According to Udi it takes Udi about 3 days to cover in detail what CQRS is truly about, so in the brief 2 hours he was talking to us and explosion of questions the audience had through-out, the details of the concept in particular how one would implement it are a bit of a blur to me right now. But luckily Udi has a post Clarified CQRS that summaries this concept, that will be well worth the read even though it’s 3000 words.

I would like to go on discussion my perception of the audience reaction, as I myself at first found I was at least initially quick to dismiss with a thought like:

But I like my current process; I don’t want to even consider a drastic change right now.


I like using the current tool-set/framework, don’t you dare try and take that away from me.

When we’re not completely sure what the alternative is, we fear it and fall back to a defensive position (developers in general it seems).

This was made clear by concerns some members of the audience voiced that ranged from; loyalty of software such as SQL Server, to not wanting step on the toes of Business Analysts, to even not wanting to offer customers any additional options for improved software solutions. Reaching a peak of almost faith in current practices “Data is King” – don’t try and make us do it any other way than we currently are.

As the presentation went forward and more of the ideas were beginning to resonate truth with some of us, a select few of the audience were jumping to wild conclusions about abandoning current practices, concerns over changes from “the current way we do things”, and even business loosing customers with alternate approaches in software operation.

At this point I would like to make it clear; I’m not attacking individuals who were vocal in their debating against what was being presented, only to suggest be a bit more receptive of alternatives. Debate is often good, and in particular in user groups it is productive and welcomed, as we’re not “on the clock” on a behind schedule project.

I for one will be taking a closer look at the suggested alternative architecture, and if the smallest part of it can help me improve even a single screen in a web application for the better, then that’s just fantastic!

The lesson is; don’t be either to quick to accept but more so even worse to quick to dismiss. There’s always alternatives so be on the lookout for clever minds suggesting new and improved approaches that can quite well be improvements on current practices.

Published by Nick Josevski

Software Engineer at Octopus Deploy

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: