Skip to content

Sponsor: Using RabbitMQ or Azure Service Bus in your .NET systems? Well, you could just use their SDKs and roll your own serialization, routing, outbox, retries, and telemetry. I mean, seriously, how hard could it be?

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

Derek Comartin

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