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

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

Loosely Coupled Monolith

With microservices all the rage over the past decade or so, there has been little attention paid to how to develop a Loosely Coupled Monolith. Both microservices and monoliths have their strengths and weaknesses. The intent of this blog and video series is not to debate the use of one or the other but rather to illustrate how you can develop a loosely coupled monolith. What the benefits come from a loosely coupled monolith and some of the drawbacks. Loosely Coupled Monolith This blog post is apart of a series of posts I’ve created around Loosely Coupled Monoliths. Solution &… Read More »Loosely Coupled Monolith

CQRS: Refactoring Queries without Repositories

This question posted on Twitter (and the subsequent thread) caught my attention. I had to pipe in with my own opinion on having queries without repositories. To summarize, the question is about using Aggregate Roots with an ORM like Entity Framework. Should you eager load all navigation properties or alternatively I guess, use lazy loading? My answer is if you’re only using an aggregate root for commands (to change state) and you generally have a higher read to write ratio, then eager load the navigation properties. As a general rule of thumb. eShopOnWeb I recently heard about eShipOnWeb from Steve… Read More »CQRS: Refactoring Queries without Repositories