Relation from Event Sourcing Live 2023

InfoQ claims that it’s in the late majority adoption phase. That means that if you haven’t started to use it, you better start doing it, as… | Continue reading


@event-driven.io | 10 months ago

A few words on communication

cover I got a surprising question during my workshop this week: It seems that communication with the business is critical to make Event… | Continue reading


@event-driven.io | 11 months ago

The Holy Graal syndrome

_ Our industry is harmed by the disease of “There has to be something more!” also called “The Holy Graal syndrome”.** Instead of trying to… | Continue reading


@event-driven.io | 11 months ago

Anti-patterns in event modelling - I'll just add one more field

Programming origins are in mathematics. Scientists like John Von Neumann and Alan Turing built the foundations for today’s computers. That… | Continue reading


@event-driven.io | 11 months ago

Is the audit log a proper architecture driver for Event Sourcing?

Usually, one of the main drivers for Event Sourcing is the audit log capability. Indeed event stores are append-only logs, theoretically, we… | Continue reading


@event-driven.io | 11 months ago

Is the audit log a proper architecture driver for Event Sourcing?

cover Usually, one of the main drivers for Event Sourcing is the audit log capability. Indeed event stores are append-only logs… | Continue reading


@event-driven.io | 11 months ago

A few notes on running open source project after Marten v6 release

A few notes on running the open source project after the Marten v6 release. Last week we released the next major Marten release, and I’d… | Continue reading


@event-driven.io | 12 months ago

How to test event-driven projections

Projections in an event-driven world are a way to interpret registered events. We can take a sequence of events and build from them read… | Continue reading


@event-driven.io | 1 year ago

Publishing read model changes from Marten

Integrations have different names, shades and colours, but only one adjective: challenging. Trying to glue systems together requires… | Continue reading


@event-driven.io | 1 year ago

Postgres Superpowers in Practice

Look! Up in the sky! It’s a bird! It’s a plane! It’s Superman!. I have such a thought quite often while working with Postgres. Why? Let’s… | Continue reading


@event-driven.io | 1 year ago

Event stores are key-value databases, and why that matters

Event stores are the foundational building block of Event Sourcing. They’re also one of the biggest sources of confusion. They are databases… | Continue reading


@event-driven.io | 1 year ago

ChatGPT, revolution or not?

I started my career when StackOverflow didn’t exist. That’s how I quite often introduce myself. I’m that old. That’s, of course, nothing… | Continue reading


@event-driven.io | 1 year ago

Ensuring uniqueness in Marten event store

Unique constraint validation is one of those things that looks simple but is not always easy. I explained already that, in Event Sourcing… | Continue reading


@event-driven.io | 1 year ago

Projecting Marten events to Elasticsearch

I told you already that Projections are an Event Sourcing killer feature, and today I’d like to repeat that. In Marten, we embraced that and… | Continue reading


@event-driven.io | 1 year ago

How to handle multiple commands in the same transaction

Let’s say that we’re starting a new project. It’s a small tool for internal needs, maybe even some sort of shadow IT project. It may also be… | Continue reading


@event-driven.io | 1 year ago

Fun with serial JSON

JSON serialisation is so much fun. We can make jokes and curse, but we must live with it. Surprisingly, that’s not getting simpler if we use… | Continue reading


@event-driven.io | 1 year ago

Don't let Event-Driven Architecture buzzwords fool you

I see a lot of new terms like Command-Event, Event-Based Compute, etc., presented around Event-Driven Architecture. Let me clear that up… | Continue reading


@event-driven.io | 1 year ago

Set up OpenTelemetry with Event Sourcing and Marten

If I had to select the Distributed Systems Song, I’d choose Land of Confusion. This is the world we live in. And these are the hands we’re… | Continue reading


@event-driven.io | 1 year ago

Event-driven projections in Marten explained

Projections are a neverending story. One does not simply write a single guide. One needs to write more examples of more advanced cases. That… | Continue reading


@event-driven.io | 1 year ago

Explicit validation in C# just got simpler

Validation is a thriving concept. It enables incredible creativity in developers implementing it in various ways. I explained my general… | Continue reading


@event-driven.io | 1 year ago

Stacking the bricks in the software development process

We, developers, are searching for Holy Grail, one pattern to rule them all. There’s no such. In his excellent book “Atomic Habits”, James… | Continue reading


@event-driven.io | 1 year ago

Guide to Projections and Read Models in Event Driven Architecture

If I had to choose the killer feature of Event Sourcing, I’d select projections. Why? I’ll explain that in detail in this article. Events… | Continue reading


@event-driven.io | 1 year ago

How to validate business logic

cover Fox Mulder used to say: “trust no one”. I’m claiming that each software developer should define their level of paranoia. The thing… | Continue reading


@event-driven.io | 1 year ago

Let's build event store in one hour!

**Last year, I completed two items from my speaker bucket list NDC Oslo and Domain-Driven Design Europe. I’m proud and happy, as those… | Continue reading


@event-driven.io | 1 year ago

Don't be like Ebenezer Scrooge. A few words about workaholism.

There is a cult of workaholism in our industry. Just like the guys from the gym brag about how much they pulled on the chest or did in the… | Continue reading


@event-driven.io | 1 year ago

Explicit events serialisation in Event Sourcing

Events serialisation is an intriguing topic. On the one hand, it’s part of the campfire spooky tales, so (in)famous events versioning. On… | Continue reading


@event-driven.io | 1 year ago

The magic is that there is no magic. Or how to understand design patterns.

The magic is that there is no magic. Many patterns perceived as complicated appear to be simple or even simplistic under the cover. Take… | Continue reading


@event-driven.io | 1 year ago

Share your story on Event Sourcing Live 2023

Event Sourcing is a concept that helps to build the bridge between business and technical implementation. It’s a storage pattern that takes… | Continue reading


@event-driven.io | 1 year ago

Testing asynchronous processes with a little help from .NET Channels

Let’s say that you have an event-driven application. It has an event bus that listens for events from asynchronous processes (e.g. Kafka… | Continue reading


@event-driven.io | 1 year ago

Mapping event type by convention

Events are an essential block of Event-Driven Architecture. They represent business facts that happened in our system. We can use them to… | Continue reading


@event-driven.io | 1 year ago

Mapping event type by convention

Events are an essential block of Event-Driven Architecture. They represent business facts that happened in our system. We can use them to… | Continue reading


@event-driven.io | 1 year ago

How to get all messages through Postgres logical replication

cover In an earlier article, I described Push-based Outbox Pattern with Postgres Logical Replication. The idea is to store the outgoing… | Continue reading


@event-driven.io | 1 year ago

How events can help in making the state-based approach efficient

In my last few articles, I showed the power of functional composition. That’s a foundation for effective modelling of your business logic… | Continue reading


@event-driven.io | 1 year ago

Never Lose Data Again - Event Sourcing to the Rescue!

Relational databases are not losing data. They’re robust, consistent and secure! Are they? Too often, we mix technical and logical concepts… | Continue reading


@event-driven.io | 1 year ago

Event Streaming is not Event Sourcing!

I’m not a HackerNews or Reddit type of guy. I don’t have enough time to waste on them. That said, I cannot deny that they’re powerful… | Continue reading


@event-driven.io | 1 year ago

How to register all CQRS handlers by convention

In CQRS, it’s common to define interfaces for the handlers to enforce the unified code structure. Such an approach is used, e.g. by MediatR… | Continue reading


@event-driven.io | 1 year ago

Long-polling, how to make our async API synchronous

I’ll continue today a topic of handling eventual consistency that I started in the previous article. This time let’s learn the trick called… | Continue reading


@event-driven.io | 1 year ago

CQRS is simpler than you think with .NET 6 and C# 10

.NET and CQRS are well known for the high ceremony and enterprise feeling. You should treat that as superstition. Let me tell you why. CQRS… | Continue reading


@event-driven.io | 1 year ago

Simple patterns for events schema versioning

Events (schema) versioning is a boogeyman for people learning Event Sourcing. They’re a spooky tale told at the campfire. There’s a truth in… | Continue reading


@event-driven.io | 1 year ago

No, it can never happen!

“No, it can never happen!”. Have you heard this sentence before? For example, a user with the same e-mail address may not register, or the… | Continue reading


@event-driven.io | 1 year ago

Integrating Marten with other systems

In Event Sourcing, events are the source of truth. We save them in the event store to have a permanent history of facts about business… | Continue reading


@event-driven.io | 1 year ago

How to do snapshots in Marten?

Getting the state from events is a basic but controversial topic in Event Sourcing. I wrote on it longer in other article. To recap… | Continue reading


@event-driven.io | 1 year ago

Using strongly-typed identifiers with Marten

Let’s say that you have the following class definition: Now you can create instance using: So far, so good. What if we accidentally mixed… | Continue reading


@event-driven.io | 1 year ago

Should a programmer's creativity be shown in code formatting?

Each of us has at least a dose of creativity. I have always liked drawing. I wanted to make effective plays in football. Today, I play the… | Continue reading


@event-driven.io | 1 year ago

How to quickly scale a legacy monolith?

Working with a legacy monolith is not easy. For years we learned how to tame that beast gently. We nurtured it and tried not to break it. We… | Continue reading


@event-driven.io | 1 year ago

I tested it on production and I'm not ashamed of it

Testing on production usually appears in ridiculous stories. They may be only annoyances like getting questions from customers why they see… | Continue reading


@event-driven.io | 1 year ago

A simple trick for idempotency handling in the Elastic Search read model

Idempotency is a word worth watching out for. It’s easy to miss a few letters and bang, and we have a problem. It is also a general problem… | Continue reading


@event-driven.io | 1 year ago

“I'm not interested in politics” is not actual anymore

War. War never changes… In IT, we’re living in a bubble. Compared to others we have good working conditions. We learned to complain about… | Continue reading


@event-driven.io | 1 year ago