Event Sourcing and interim streams

TL;DR When modelling with event sourcing, people often tend to create long living streams/aggregates. I encourage you to improve your modelling with interim streams. Long live the king A user, an account, a company. Frequently this kinds of aggregates are distinguished during first modelling attempts. They are long lasting, never ending streams of events. Sometimes … Continue reading Event Sourcing and interim streams

Multitenant Event Sourcing with Azure Table Storage

TL;DR Designing a multitenant system puts a hard requirement on a designer to do not leak data between tenants. Is there anyone who would like to show a list of employees' emails from one company to another? Azure Table Storage Azure Table Storage is a part of Azure Storage Services. It's mentioned in the original … Continue reading Multitenant Event Sourcing with Azure Table Storage

Concurrent conditional deletes

TL;DR Sometimes System.Collections.Concurrent provide not enough methods to squeeze the top performance out of them. Below you can find a small extension method that will make your life easier in some cases Concurrent dictionary The concurrent dictionary provides a lot of useful methods. You can TryAdd, AddOrUpdate. Additionally, you can use TryUpdate which provides a … Continue reading Concurrent conditional deletes

Rediscover your domain with Event Sourcing

TL;DR Beside common advantages of event sourcing like the auditing, projections and sticking closely to the domain, you can use events to discover the domain again and provide meaningful insights to your business. Include.Metadata I've already described the idea of enriching your events. This is the main enabler for analyzing your events in various way. … Continue reading Rediscover your domain with Event Sourcing