DDD Europe 2023 - Program

Practical Introduction to Event Sourcing

Pre-conference Workshops


Oskar Dudycz

Oskar Dudycz
June 5-6

Event Sourcing allows you to create business-related applications. Recording events (facts) about the business process gives a complete understanding of your workflow and reflects them in the code. It is wrongly considered a complicated pattern that is challenging to apply in practice.

Learning objectives:

The workshop will be hands-on and teach you how to use Event Sourcing, giving you solid foundations. You will understand after them:

  • when and how to use it and what benefits it brings,
  • how to reflect your business logic in the code using events,
  • differences to the classical approach,
  • different tools such as Marten and EventStoreDB and the differences between them,
  • how to use Event Sourcing on your system,
  • challenges related to Event Sourcing and recommended solutions.


  1. Introduction to Event Sourcing. Basic terminology (event, stream of events, command), differences from the classical approach.
  2. What is Event Sourcing, and how is it different from Event Streaming. Advantages and disadvantages.
  3. Write model and data consistency guarantees.
  4. Various ways of handling business logic: Aggregates, Command Handlers, functional approach.
  5. Projections and best practices for building a read model on the.
  6. Challenges in Event Sourcing and EDA: delivery guarantees, event processing order, idempotency, etc.
  7. Saga, Choreography, Process Manager, handling distributed processes.
  8. Event Sourcing in the context of application architecture, integration with other approaches.
  9. Good and bad practices in modelling and handling events.
  10. Event Sourcing on production, evolution, event versioning, etc.


  • understanding of the basic building blocks of the application design,
  • experience in one of the languages and platforms: C#, Java, TypeScript (code exercises will be done using them),
  • positive and open-minded attitude ;) .


Practical Introduction to Event Sourcing

The workshop will be run in the Hands-on mode. It’ll be a mixture of coding exercises, group work and discussions.

You can do it with one of the following technologies:

Please clone the source codes, go through the setup in the linked README files and ensure that everything works before the workshop.

Pre-workshop Survey

Please fill out the survey as soon as you can: https://forms.gle/NZLjoV6xcyoenchWA

It’ll help me to prepare and run the training effectively and balance the exercises and the pace.

About Oskar Dudycz

Twitter LinkedIn Blog Company Website Sessionize Sessionize

I'm a developer, technical team leader, and architect. I started a career before StackOverflow existed. For over 15 years, I've been creating systems close to the business process. I believe that Event-Driven Architectures and Event Sourcing are great ways to achieve that.

I'm an active open-source developer and one of the Marten library maintainers. I'm sharing my journey and findings on my blog https://event-driven.io and practical samples at https://github.com/oskardudycz.