The Power of Event Sourcing

Discover how we used Event Sourcing to maintain flexibility, handle changes, and ensure efficient error resolution in application development.

Sharing Our Positive Experience with Event Sourcing in a Customer Application

We just had a nice experience while maintaining one of the applications we created for our customer and we wanted to share this with you!

Project Overview

We are building a small ‘on-the-side’ project for a customer that supports the planing of a huge event with more than 1.500 guests. It's not in their major line of work and they use the application for about 1.5 months to organise the seating plan for their annual Company party. Together we decided that it’s OK to take some shortcuts during the implementation to reduce the overall effort.

Development Phase

Over the last few weeks we have been busy working on the application. Lots of small change requests ('I want a different text in the generated email', ‘Can you add this field on that page?’, ‘We thought this feature works differently’) were coming in every couple of days.

Event-Sourcing Approach

Due to the ‘ad-hoc’ (or in German we would call it ‘hemdsärmelig’) setup of the project we, me and my colleagues Rinat Abdullin and Aigiz Kunafin, decided it would make sense to take an event-sourcing approach for the application.
One of the reasons is that storing all changes in the application as raw events allows us to move fast, evolve the application as new requirements arise and spend not too much time in modelling the system upfront.
Rinat sketched it briefly in a Tweet a while ago:

  • we have an event sourced application with a single aggregate, operating on a single event stream,

  • running on one application server is sufficient,

  • we keep all state in memory and persist only new events to a SQL-Server (currently we have approximately 10.000 events and the application - ASPNETCORE - consumes 250 MB of memory on Windows)

  • and we have isolated, dedicated pages which communicate with the user via web-sockets. (It's a mixture of serverside rendering and some Vanilla/jQuery based JavaScript)

Benefits and Setup

The setup allows us to move fast and there is not a lot of time to write tests; We have only one unit & integration test. To mitigate this, we wanted to make sure that we had a good, fast and reliable CI/CD pipeline and comprehensive logging in the application.

A consequence of not having a suite of tests is that things tend to break from time to time. Usually the errors are either

  • isolated on one particular page

  • mitigated via Event Sourcing

The errors are usually fixed within a few minutes and rolled out via another deployment.

The incident

Just a couple of days ago we had another incident with the customer where the architecture and the setup paid off big time.

In the application we have functionality where users can assign physical dining tables, spread over several rooms of the event location, to logical tables to organise and plan the event. Prior to this assignment the customer does a physical random table-picking, by drawing the tables assignments one by one, to determine which table should be positioned in which room.

Afterwards they enter the randomly assigned tables into an Excel-File and upload it to the application.

The Issue and Resolution

However, there is a catch: some tables - for VIPs - are placed in a different way and shouldn’t be updated by this table-picking mechanism.
This time they kept the logical VIP tables in the Excel-File they uploaded, but they had no physical tables assigned to them.
During the upload of the file we reset all previously assigned physical tables for the VIPs. You could argue that it was not a bug and worked as designed, but the customer was still not very happy about this, because they thought that they lost a lot of work!

So what did we do to mitigate this issue? We simply deleted the events generated by the upload, fixed the implementation, re-uploaded the file and everything was fine. And the best thing: in the meanwhile the customer could keep on working with the application! Although we did ask them not to work in areas directly related with VIP tables.

Customer Satisfaction

Everything was resolved in approximately one hour and the result: a very happy customer.
The customer knew upfront that we were storing every change they made in the application and that this empowers us to react to errors either on our or the customers side in a very fast way. We proved them again that there are no catastrophic errors and we have chosen the right architecture for the application!

Blog 7/14/23

Event Sourcing with Apache Kafka

For a long time, there was a consensus that Kafka and Event Sourcing are not compatible with each other. So it might look like there is no way of working with Event Sourcing. But there is if certain requirements are met.

Blog 10/21/20

Consistency and Aggregates in Event Sourcing

Learn how we ensures data consistency in event sourcing with effective use of aggregates, enhancing system reliability and performance.

Wissen 4/14/23

The "Beautiful five" and the Power of "One-Number" Reporting

Key figures are a perennial favorite in idea management, have been used for many years (decades) and are now very topical again. The reasons are obvious. You want to set performance benchmarks, define targets, follow up on where things are not going so well and measure the success or failure of idea management.

Neues Training für Atlassian Jira: „Realizing the Power of Jira Reporting & Dashboards” jetzt auch für die Cloud
Training

Realizing the Power of Jira Reporting & Dashboards (DC)

Over the course of "Realizing the Power of Jira Reporting & Dashboards (Data Center)" participants will learn about the basic functions of Jira dashboards and reports.

Blog

catworkx behind the scenes - „The Lord of the Screens”

IIn our new blog article, we take a look behind the scenes and see who actually works at catworkx. Today: The lord of the screens.

Branche

Digitization of the energy industry

The energy sector is undergoing an unstoppable process of change. Progressive digitization and the energy transition are causing traditional system and process boundaries to disappear.

Blog

The ROI of Gen AI

Discover how leading companies are already profiting from Gen AI!

Blog 5/25/21

From the idea to the product: The genesis of Skwill

We strongly believe in the benefits of continuous learning at work; this has led us to developing products that we also enjoy using ourselves. Meet Skwill.

Blog 10/4/24

Open-sourcing 4 solutions from the Enterprise RAG Challenge

Our RAG competition is a friendly challenge different AI Assistants competed in answering questions based on the annual reports of public companies.

Übersicht

Events & Webinars

Atlassian & catworkx events, virtual, hybrid or on-site: We cordially invite you and share our knowledge and experience with you.

News 1/26/21

The IPG Group becomes part of the TIMETOACT GROUP

The TIMETOACT GROUP acquires the majority of the shares of IPG Information Process Group Holding AG, based in Winterthur. Through the acquisition, the competencies for Identity and Access Management (IAM) solutions in the DACH market are combined.

Referenz 4/13/23

The new Idea and Innovation Management of the DDPS

The new solution is available to employees in the familiar portal and in the same design. It is very easy to use and adapted to the needs of the role holders. It was easy to move away from the old platform. The switch to the new solution is rated very positively by all roles.

News 1/26/21

The IPG Group becomes part of the TIMETOACT GROUP

The TIMETOACT GROUP acquires the majority of the shares of IPG Information Process Group Holding AG, based in Winterthur. Through the acquisition, the competencies for Identity and Access Management (IAM) solutions in the DACH market are combined.

Event

The future of the supply chain - proactive risk management

How to optimize risk management with generative AI & knowledge graphs - for more efficiency, better decisions and full control over your supply chain.

Unternehmen 7/30/21

Our management – the engine of ARS

Get to know our management team!

News 3/24/25

SAP Partner of the Year 2025

WCA Walldorf Consulting GmbH has been named “Partner of the Year” by SAP in the SAP S/4HANA Cloud Public Edition category!

Blog 4/8/25

The End of SAP Business ByDesign

This article explores why the end of SAP Business ByDesign is being widely anticipated, what this means for your business, and how you can plan a successful transition to future-ready ERP solutions.

Blog 6/29/21

7 Positive effects of visualizing the interests of your team

Interests maps unleash hidden potentials and interests, but they also make it clear which topics are not of interest to your colleagues.

Insights

These are the proud winners of the Enterprise RAG Challenge

Discover the winners of the Enterprise RAG Challenge! Explore top RAG solutions, watch the official announcement, and see how AI-driven retrieval and LLMs shaped the best-performing models.

News 2/1/23

target became part of the TIMETOACT Group

target Software Solution GmbH and Walldorf Consulting AG have been acquired by the TIMETOACT Group.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!