Blog

Filter: Microservices x
sender-contract.png

In Message-Based Systems, Who Owns the Contract?

Brad Jolicoeur - 02/17/2026
In distributed systems, coupling often hides in message contracts. Learn why Events vs. Commands matters for ownership, and how to avoid the "Common" library trap.
Read More
trigger-mouse-trap.png

The Trap of Database Triggers in Event-Driven Architecture

Brad Jolicoeur - 02/13/2026
Database triggers seem convenient for data reliability, but they introduce hidden locking, coupling, and semantic loss. Learn why modern architectures prefer the Outbox pattern and CDCs.
Read More
fifo-queues.png

The FIFO Fallacy: Why Ordered Queues are Killing Your Scalability

Brad Jolicoeur - 01/31/2026
Explore why strict FIFO queues can hinder scalability and availability in distributed systems, with practical .NET/C# examples of better alternatives.
Read More
wirlpool-small.jpg

Initial Impressions of Wolverine

Brad Jolicoeur - 05/04/2024
I recently converted one of my example projects that used MVC controller based API, Marten Event Sourcing and Rebus to use Wolverine. This article contains some of my initial impressions of Wolverine in that experience and focuses on Wolverine.http API endpoints.
Read More
Elephant Rock

Event Sourcing with MartenDb

Brad Jolicoeur - 03/28/2024
I have been digging into MartenDb and found a sample of the Event Sourcing features included in MartenDb. In this article I walk through this simple Event Sourcing example and describe what is happening.
Read More
lighthouse-crop.jpg

Exploring FastEndpoints: A Better Approach to Building APIs

Brad Jolicoeur - 05/21/2023
I recently stumbled upon a Library called FastEndpoints while doing research and it immediately struck me as something I wanted to learn more about. I had started experimenting with Minimal APIs at the time. While I liked that Minimal APIs lower the entry point for simple API creation and are significantly more performant than MVC Controllers, they quickly turn your program.cs file into a jumbled mess with anything beyond trivial. The desire for code organization quickly pushes towards finding a sensible way to orient the code.
Read More
waterflower.jpg

The Importance of API Versioning: Ensuring Compatibility and Flexibility

Brad Jolicoeur - 05/18/2023
Not versioning APIs is one of the biggest issues I see with teams that attempt to implement a distributed architecture. Not supporting multiple versions of an API means all the teams are coupled together and requires downtime to deploy. I've actually seen where this is actually listed as a reason to use a monolith instead of a distributed architecture.
Read More
Fortress

Steeltoe Microservices Framework

Brad Jolicoeur - 11/13/2020
If you have not run across Steeltoe, it is a set of libraries that address most of the cross cutting concerns you deal with when building microservices. Logging, Configuration, Health Checks, Traces, Service Discovery, etc.
Read More
cairn trail marker

Exploring Rebus

Brad Jolicoeur - 10/23/2020
Recently, I became aware of two other options in the .NET Service Bus space that I felt deserved a closer look. Rebus and Brighter. Since Rebus seemed to be similar to NServiceBus and MassTransit I started there.
Read More
Gate

My Favorite NServiceBus Features - Message Encryption

Brad Jolicoeur - 10/20/2020
Property encryption is one of my favorite NServiceBus features in that it provides a pattern for implementing message encryption as well as providing a concrete basis for addressing the concerns of compliance and security teams. Additionally, once your endpoint conventions are configured, it is easy to live with since it gets implemented only where necessary and in a consistent way.
Read More