How to build MongoDB Event Store

I have always said that is not the best choice for event storage, and guess what? I just released the stable version of the MongoDB event… | Continue reading


@event-driven.io | 4 hours ago

Idempotent Command Handling

“Are you command handling idempotent?” Sounds like a douchebag question to ask. Actually, that’s not a question but a statement that we want… | Continue reading


@event-driven.io | 1 month ago

Bootstrapping CRUD with Pongo

The leitmotif of this blog is the event-driven approach. I truly believe that it’s a way to keep our applications closer to business. By… | Continue reading


@event-driven.io | 2 months ago

Pongo behind the scenes

**If you want to make God laugh, tell him about your plans. ** My plans were simple: recharge during summer, take a break in July, and then… | Continue reading


@event-driven.io | 3 months ago

Pongo gets strongly-typed client, migrations, and command line tooling

When you think upfront and want to make things right, there’s an interesting feedback loop. Quite often, things start to click, often in a… | Continue reading


@event-driven.io | 3 months ago

My Architecture Drivers

I don’t feel like an authority or an expert. I prefer to think about myself as a practitioner. Our industry is filled with self-proclaimed… | Continue reading


@event-driven.io | 4 months ago

Using event metadata in event-driven projections

Some time ago, I wrote about the dangers that come from the I’ll just add one more field” attitude. Have you heard about the Broken Window… | Continue reading


@event-driven.io | 4 months ago

Writing and testing event-driven projections with Emmett, Pongo and PostgreSQL

In the previous article, I told what happened when Emmett and Pongo walked into a bar. In other words, I announced that you can now do Event… | Continue reading


@event-driven.io | 4 months ago

Event Sourcing on PostgreSQL in Node.js just became possible with Emmett

Last week, I announced Pongo - Mongo, but it was on PostgreSQL. So, the Node.js library allows using PostgreSQL as a document database… | Continue reading


@event-driven.io | 6 months ago

Pongo - Mongo but on Postgres and with strong consistency benefits

Flexibility or Consistency? Why not have both? Wouldn’t it be great to have MongoDB flexible schema and PostgreSQL consistency? MongoDB is a… | Continue reading


@event-driven.io | 6 months ago

Filtering EventStoreDB subscriptions by event types

Regular expressions are one of the classic examples of hate and hate relationships. Yes, it’s not a typo; hate and hate. Do you know anyone… | Continue reading


@event-driven.io | 6 months ago

How to automatically setup pgAdmin with a Docker database

Developer experience is a phrase repeated in multiple ways. In our industry, we finally realised how important it is to reduce the cognitive… | Continue reading


@event-driven.io | 6 months ago

Setting up NGINX load balancer for .NET WebApi

“Just put the load balancer in front of it, and call it a day”. But is it really that simple? Was it ever “just do XYZ?“. I was preparing a… | Continue reading


@event-driven.io | 6 months ago

Combining the To-Do List and the Passage Of Time patterns for resilient business workflows

Managing processes is non-trivial. I have written about it in multiple posts and told you the horror story of the case that should have… | Continue reading


@event-driven.io | 7 months ago

Let's build the worst Event Sourcing system!

Everyone likes to talk about best practices. I went the other way around and gathered all the worst practices on how to build the worst… | Continue reading


@event-driven.io | 7 months ago

Why you should batch message processing and how to do it with .NET AsyncEnumerable

AsyncEnumerable is a sneaky abstraction. It allows simplified and performant usage for iterating on pull-based and push-based sources. “Pull… | Continue reading


@event-driven.io | 7 months ago

Docker Compose Profile, one the most useful and underrated features

Erik Shafer asked me on the Emmett Discord if I could provide a sample of how to run the WebApi application using Emmett. Of course, I said… | Continue reading


@event-driven.io | 7 months ago

How to write a left-fold streams collector in Java

Last week, we covered the latest improvements to Java 22 around pattern matching and records. They enable explicit business logic modelling… | Continue reading


@event-driven.io | 8 months ago

This is not your uncle Java! Modelling with Java 22 records pattern matching in practice

I like learning new things. It stimulates my creativity, helps me gain diverse perspectives, and helps me be humble. When you’re a notorious… | Continue reading


@event-driven.io | 8 months ago

How to configure a custom Test Container on the EventStoreDB example

Testcontainers became a popular way of setting up dependencies for integration testing. They’re not ideal, as configuring them to run your… | Continue reading


@event-driven.io | 8 months ago

Mocking the native Node.js Test Runner

Last week, we discussed an overused but applicable pattern: in-memory bus. This time, we’ll continue with the leitmotif and talk about… | Continue reading


@event-driven.io | 8 months ago

How to build an in-memory Message Bus in TypeScript

I’m writing this article on Friday, and it’s about time to have some fun. As this is a programming blog, let’s have some fun coding. Let’s… | Continue reading


@event-driven.io | 9 months ago

Event modelling anti-patterns explained

Have you heard about Passive Aggressive Events or CRUD sourcing? Or maybe about the Clickbait event? If you don’t, you better check the talk… | Continue reading


@event-driven.io | 9 months ago

I'm no longer Marten maintainer

Folks, I’d like to inform you that I’m no longer a Marten maintainer. As you know, sometimes in the project’s lifetime, there’s a moment… | Continue reading


@event-driven.io | 9 months ago

Testing Event Sourcing, Emmett edition

I’ve been going pretty down the rabbit hole in the last few years. What am I searching for? A way to deliver better software. And that’s, of… | Continue reading


@event-driven.io | 9 months ago

Join my Event Sourcing workshops at Techorama and DDD Europe and speed up your journey!

Event Sourcing is a pattern that is quickly gaining popularity. Many companies see the advantages it brings, e.g. business focus and keeping… | Continue reading


@event-driven.io | 9 months ago

How to tackle compatibility issues in ECMA Script modules (and in general)

Do you recall moments when you’re sitting and closing dozens or more browser tabs? Most of them are Google, GitHub, Blogs, and others. You… | Continue reading


@event-driven.io | 10 months ago

Keeping our overachieving freak on a leash

Being busy is not something we strive for; it’s an axiom. Social media are not helping; our whole lives are on the plate. And we’re chefs… | Continue reading


@event-driven.io | 10 months ago

Should you always keep streams short?

In the last article and others I did my best explaining why keeping streams short is important in Event Sourcing. I also showed you how… | Continue reading


@event-driven.io | 10 months ago

Implementing Closing the Books pattern

No one knows who invented Event Sourcing. I overheard that Hammurabi did. Why? Because he standardised the first set of rules of accounting… | Continue reading


@event-driven.io | 10 months ago

Announcing Emmett! Take your event-driven applications back to the future!

Simple is not easy. Each person has its definition of it. For me, it means that when I look at the solution, I think: _“So simple. Why didn… | Continue reading


@event-driven.io | 11 months ago

Production-Grade Event Sourcing Workshop - Modelling, DevOps, Process

Putting the career bets is not easy; I made boring and pragmatic choices for most of my career. They took me far. Yet, I always felt that… | Continue reading


@event-driven.io | 11 months ago

How TypeScript can help in modelling business workflows

TypeScript is an intriguing language. Some say that its type system, by itself, is Turing Complete. Some take it to the extreme and even… | Continue reading


@event-driven.io | 11 months ago

Stream ids, event types prefixes and other event data you might not want to slice off

You’re reading much more code than you’re writing. Readability is a highly subjective term. That’s probably why some call what we’re doing… | Continue reading


@event-driven.io | 11 months ago

Should you record multiple events from business logic?

Asking people for feedback is an intriguing story. I like to get constructive criticism for my work, as that allows me to learn something… | Continue reading


@event-driven.io | 12 months ago

Not all issues are complex, some are complicated. Here's how to deal with them

Cynefin’s framework states that we have four types of decision-making contexts (or domains): clear, complicated, complex, and chaotic. They… | Continue reading


@event-driven.io | 1 year ago

What Dune can tell us about setting our goals

Dune series has a lot of great thoughts. They’re more than just sci-fi books. Let me share one with you: Moneo: For what do you hunger, Lord… | Continue reading


@event-driven.io | 1 year ago

Why I won't use .NET Aspire for now

When you’re angry, take a breath, take your time and then talk. So I did after I tested .NET Aspire yesteday. I hoped it could be a decent… | Continue reading


@event-driven.io | 1 year ago

Hitchhiker's Guide To Moving Relational Data To Events

Knock knock? Who’s there? It’s me, Oskar, the end is near, did you know that? Ah, you know it but don’t know how to proceed? Let’s talk… | Continue reading


@event-driven.io | 1 year ago

A few notes on migrating storage library

I’m feeling like a surgeon in recent days. Who knew that changing the connection management would be a delicate thing to do? I did, but it’s… | Continue reading


@event-driven.io | 1 year ago

Are you Marten or Wolverine user? Tell us more!

I’m always saying that the Marten community is one of the things that keeps me doing Open Source and staying in the .NET community. It’s… | Continue reading


@event-driven.io | 1 year ago

How to deal with privacy and GDPR in Event-Driven systems

The law to be forgotten and immutable data sounds like fire and water. How to remove data if you’re building an event-driven system based on… | Continue reading


@event-driven.io | 1 year ago

We introduced support plans for Marten

We just introduced support plans for Marten, and here’s why. We’re really committed to providing tools that are accessible, safe and bug… | Continue reading


@event-driven.io | 1 year ago

GDPR for busy developers

This year, we had the fifth anniversary of the Developers’ Doomsday. In 2018, on the 25th of May, the European General Data Protection… | Continue reading


@event-driven.io | 1 year ago

Anti-patterns in event modelling - Clickbait event

Doctors Hate Her! Discover the Simple Trick to Lose Weight Overnight! This One Weird Trick Can Save You Hundreds on Your Energy Bills! The… | Continue reading


@event-driven.io | 1 year ago

Women in IT

**I used to play football. I wasn’t talented, but still, I loved it. Football is a team sport, and playing is not the only essential part of… | Continue reading


@event-driven.io | 1 year ago

In the defence of Object-Relational Mappers

I’m happy I didn’t have to use Object-Relational Mapping tools in the last few years. They’re solutions to some set of problems, but those… | Continue reading


@event-driven.io | 1 year ago

Internal and private events, or how to design event-driven API

One of the things that we’re learning too late in the Event-Driven approach is that we should have been splitting events into internal and… | Continue reading


@event-driven.io | 1 year ago