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

Why use MediatR? 3 reasons why and 1 reason not

The MediatR library by Jimmy Bogard has become increasingly popular over recent years, and deservedly so. By its own definition, it’s a simple, unambitious mediator implementation in .NET. Why are so many developers using it? Why should you use MediatR? Here are 3 reasons why you should at least consider using it and one reason why shouldn’t. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this one regarding MediatR. What is MediatR? For those unfamiliar with MediatR library or the mediator pattern: In software engineering, the mediator pattern defines an object that encapsulates how a… Read More »Why use MediatR? 3 reasons why and 1 reason not

Thin vs Fat Integration Events

When notifying other parts of a system of state changes I recommend creating integration events (also referred to as notifications). They are really low coupling because the producer doesn’t care who the consumers are. They simply publish integration events to a message broker and go on their merry way. Loosely Coupled Monolith This blog post is apart of a series of posts I’ve created around Loosely Coupled Monoliths. Although not specific to a monolith as this blog post applies to many architectures including microservices. Loosely Coupled Monolith Overview Solution & Project Structure YouTube Check out my YouTube channel where I… Read More »Thin vs Fat Integration Events

Solution & Project Structure of a Loosely Coupled Monolith

Here’s how you can create a solution and project structure to develop a loosely coupled monolith using a .NET Solution with C# Projects. Each boundary is in a solutions folder with 3 projects. Implementation, Contracts, and Tests. All of which are class libraries. The two top-level executable projects, AspNetCore and Worker are console applications that reference the implementation projects. Loosely Coupled Monolith This blog post is apart of a series of posts I’ve created around Loosely Coupled Monoliths. Loosely Coupled Monolith Overview Thin vs Fat Events YouTube Check out my YouTube channel where I post all kinds of content that… Read More »Solution & Project Structure of a Loosely Coupled Monolith