September 27, 2018In part 1 we had a look at some of the fundamental ideas behind Event Sourcing and why it is a powerful technique that brings us lots of benefits. In this post we’ll have a look at some skills that are important to know in order to succeed with Event Sourcing. 1. Use Event Storming to figure out what to do A great methodology for breaking down and understanding any current or new system is Event Storming - coined by Alberto Brandolini.
September 26, 2018With this series of posts I will try to shed some light on the original idea behind Event Sourcing and how we at Serialized think about it. I will also try to distinguish the technique from other similar architectural patterns and solutions that involves events. Finally we’ll get to how we can implement an event-sourced system and also look at some possible pitfalls and how to avoid them. In this post (part 1) I will try to describe the fundamentals of how Event Sourcing works and why you should care about it.
January 22, 2018Apache Kafka is a cool product, but if you are thinking about using it for event sourcing you should think again. Kafka is a great tool for delivering messages between producers and consumers and the optional topic durability allows you to store your messages permanently. Forever if you’d like. So, if your messages are events you can use Kafka as an event store or an event log, but it really isn’t a suitable tool for event sourcing.
December 7, 2017Building your domain model with event sourcing is maybe not simpler than using a stateful snapshot-style modeling where everything is available at hand. There are however a few compelling reasons that makes it a very nice tool to use when the thing you’re building is really business-critical. In this post I will shed some light on some nice characteristics you get from event sourcing when it comes to testing your business logic.
October 11, 2017The implementation of our core domain model should be the neatest part of our code base. We like to make an extra effort to make it as readable as possible and we also tend to be stricter when it comes to keeping immutability. However, developing a neat intention-revealing model with no side-effects and a clear business language can be tricky. We want to use value objects instead of primitive data structures as much as possible to create a rich model that speaks the language of the domain.
October 9, 2017Another day at a random large software company in Sweden. No one really knows how it works. The consultant who wrote the calculation routine quit 8 years ago (leaving a big mess) and now we need to handle this new law that’s being put into action this year. One of the most important customers just found a serious bug in the reporting tool. The stats are way off and they can’t tell how they got to where they are now.