So, I’ve been selected to make a public appearance in DDD Scotland conference on 14th May 2016 in Edinburgh. Or rather people are interested in what I have to say about CQRS software architecture, and nobody cares about me personally. This way it sounds less intimidating. Because I’m petrified.

I’ve done a couple talks in the local .Net developers group, I’ve done presentations in front of people. But the most of people I’ve spoken before was about 30. This time there will be 110 people, or so the room can fit that many people. If you have not got this yet, I’m not used to making public appearances in front of such crowds. And more – all these people are expecting me to talk for an hour and not just blabber, but make sense and put my knowledge into their heads. Well, that’s exciting!

I’ve already done this talk about CQRS and I if you are interested, you can go through [slides](https://github.com/ trailmax/CQRS.Talk/raw/master/CQRS.pptx) or look on code samples. But I’ll be trying to cut corners, as the talk is too long for DDD presentation.

CQRS

Anyway, what to expect from the talk? This is mostly aimed on .Net developers as I’ll be showing code examples in C#. Most of my development is happening in Asp.Net MVC, but the same techniques can be applied to WebForms and not web-related application. I have successfully used the same architecture in command-line applications. Certainly the theory behind (separate your reads and writes) should be applied every time you write any code.

Talking about theory – I’ll start from introduction into what CQS and CQRS are and the differences, will show some code samples. I’ll show some diagrams how CQRS-application differs from your typical CRUD application. I’ll explain why CQRS does not mean you have to use NoSQL or any other funky databases.

I’ll go through a refactoring exercise of how to go from a bloated repository implementation to a Queries and how is SOLID principles are going to be implemented.

Next will be similar refactoring (though shorter this time) from a service implementation to a command implementation, followed up by a discussion why this approach is better.

Towards the end of the presentation I’ll talk about the real magic here – Decorators and how easy it’ll be to implement a lot of cross-cutting concerns like logging of every write-action a user takes. And there will be a little demo for those who is not familiar with this pattern.

Hopefully it all will come together nicely and a shall see you on the conference!