Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Architecture

Is CQRS Complicated?

There are many misconceptions about CQRS. It’s often referenced alongside other patterns that can make it seem difficult and complicated. Is CQRS complicated? No. CQRS is simple. Really simple. What is CQRS? First, let’s tackle at the very core what CQRS actually is. CQRS stands for Command Query Responsibility Segregation and was coined by Greg Young. CQRS is related to CQS (Command Query Separation) principle by Bertrand Myer which states: Every method should either be a command that performs an action, or a query that returns data to the caller, but not both. In other words, a command is a… Read More »Is CQRS Complicated?

Orleans Smart Cache Pattern

I discovered the Orleans Smart Cache Pattern by listening to a talk by John Azariah and Sergey Bykov.  The idea is that you can use Orleans as a distributed cache in front of (permanent) storage.  This is really ideal if you have a read heavy system, which most are.  You could optionally also choose to buffer your writes when you make state changes.  Ultimately you will reduce load on your storage by accessing data/state from memory. Blog Post Series: Part 1 – Practical Orleans Part 2 – Grains and Silos Part 3 – Smart Cache Pattern Part 4 – Event Sourced… Read More »Orleans Smart Cache Pattern

Mediator between Integration Boundaries

If you have followed my Fat Controller CQRS Diet series, you will see that I use the mediator pattern. More specifically I use MediatR library in all the code examples. I recently gave a talk at CodeMash 2017 with the same title.   It went a bit more in depth about why and where I use the mediator pattern. Integration Boundary I want to decouple my application from the framework I’m using. The mediator pattern is one way of achieving that. My code should be be my code.  Not littered through framework code. Generally, I don’t want to have any dependencies on MVC, Web API,… Read More »Mediator between Integration Boundaries