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

Defining Service Boundaries by Splitting Entities

Defining Service Boundaries is a really important part of building a loosely coupled system, yet can often be difficult. Here’s one way of realizing where service boundaries lie but looking at Entities and the properties and how they relate. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything that is in this post. Catalog For the purpose of this example, I’m going to use an e-commerce, distribution domain. Don’t worry too much if you don’t know distribution. At a high level, you buy products from vendors, store… Read More »Defining Service Boundaries by Splitting Entities

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

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