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

Message Sender: Who Sent the Command/Event?

When handling a message, regardless if it’s a command or event, you often want to know who sent the message. Who was the message sender? Not the service, but the actual user who initiated it. If it’s a command then who invoked it. If it’s an event, who invoked the command that changed state within the system that created the event. This post is in a series related to messaging. The overview is available in my Message Properties post. Authorization The most common reason for wanting to know who sent a message is to determine if they are authorized to… Read More »Message Sender: Who Sent the Command/Event?

Roundup #66: Capturing the World in Software, Conventional, Polymorphic classes with System.Text.Json, Blazor WebAssembly 3.2.0 Preview 1

Here are the things that caught my eye recently in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter. Capturing the World in Software If event sourcing is not scalable, faster, or simpler, why use it? Event Sourcing gives you a complete, consistent model of the slice of the world modeled by your software. That’s pretty attractive. Link: https://blog.jessitron.com/2020/01/24/capturing-the-world-in-software/ Conventional After this tweet by Dave Glick, I found this package that I thought was pretty interesting. Check out the twitter thread for a lot of good info. Link:… Read More »Roundup #66: Capturing the World in Software, Conventional, Polymorphic classes with System.Text.Json, Blazor WebAssembly 3.2.0 Preview 1

Message-IDs for Handling Concurrency

This post serves as a guide for how you can use a Message identification (Message-IDs) on your messages (events and commands) to handle concurrency. This post is in a series related to messaging. The overview is available in my Message Properties post. YouTube If you haven’t already check out my YouTube channel. Message-IDs Each message, regardless of it being an event or a command, should contain a way to identify its specific instance of that message. This is as simple as adding a GUID/UUID to your messages: No other message (event/command) should ever use this ID (unless you’re also using… Read More »Message-IDs for Handling Concurrency