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

Developing Features not Layers

Developing and thinking about features not layers is something I’ve moved towards over the last several years. I’ve mentioned it in several blog posts and I don’t think I ever explicitly created a post about it. CQRS The real enabler has been CQRS.  For those unfamiliar with CQRS or if you think it’s complicated, let me share a quote from Greg Young: CQRS is simply the creation of two objects where there was previously only one. The separation occurs based upon whether the methods are a command or a query (the same definition that is used by Meyer in Command and Query… Read More »Developing Features not Layers

MicroBus: In-Process Mediator

I’ve blogged about the mediator pattern a lot.  Primarily because it’s been a good fit in several of the applications I’ve developed over the last few years. Mediator Pattern For those completely unfamiliar with the mediator pattern, here’s a brief summary: With the mediator pattern, communication between objects is encapsulated with a mediator object. Objects no longer communicate directly with each other, but instead communicate through the mediator. This reduces the dependencies between communicating objects, thereby lowering the coupling. Libraries I’ve written my own implementations of the mediator library from project to project.  Once I finally found the MediatR library, I’ve pretty… Read More »MicroBus: In-Process Mediator

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