- Define messages as POCO, interfaces, or records. Does it really matter? (31 October 2023)
.NET developers building message-based systems seem to give serialization and surrounding concerns more importance than needed. Let's try to dissect the topic
- What if my command was rejected? (27 June 2023)
Distributed systems are different and require a different mindset. That's particularly true when dealing with async processes and failures. We need new tools and a new toolbox. And in the end, we can avoid rejecting that command.
- Back to Basics: commands, events, and messages (25 May 2023)
When you're involved with something for a very long time, it's easy to fall into the trap of taking many concepts for granted. Let's go back to the basics and build a common foundation. Today's topics are commands, events, and messages.
- How many (micro)services do I need? (15 March 2023)
Microservices, microservices everywhere. But how many of them do we need? It's easy to be trapped by the micro thing and end up with thousands of them. Let's try to provide some guidance.
- What's an Outbox and why do we need it? Hint: it's about data integrity (7 February 2023)
Distributed systems are ugly beasts sometimes. They hide subtle tricks that can lead to data loss and system corruption. The Outbox pattern helps address a couple of them.
- Businesses don't fail, they make mistakes (10 September 2019)
Sooner or later the system will fail. Doesn't matter if it'll be for an infrastructure failure or a bug. It'll fail. Dealing with failures can be tricky especially when business failures are handled like if they were infrastructure ones.
- Safety first! (2 May 2019)
In a distributed system, communication reliability is a key aspect. Orchestrating multiple HTTP calls is generally a bad idea; it's very hard, if not impossible, to be reliable. This is when messaging and patterns like the Outbox come into play.