Data Mesh Live 2025 - Program

Practical Introduction to Event Sourcing

EventCentric - Workshop (2 days)

Speakers

Oskar Dudycz

Oskar Dudycz
Date
June 2-3
Description

Event Sourcing is an architectural pattern used in software design, that is gaining popularity with teams managing large complex systems. Recording events that reflect meaningful business actions provides a clearer, more detailed understanding of system behaviour and business processes for all the team members. Although sometimes considered a complicated pattern, this hands-on course will demonstrate the benefits of Event Sourcing and how to apply the pattern in your current projects. Learning objectives:

Thhis hands-on workshop will teach you how to use Event Sourcing, giving you a solid understanding of the fundamentals. You will learn:

  • How and when to apply Event Sourcing, as well as learning the core benefits this pattern brings
  • How to reflect your business logic in the code using events
  • The core differences to the classical approach
  • Different tools such as Emmett, Marten and EventStoreDB and the differences between them
  • How to apply Event Sourcing to your own system
  • Challenges related to Event Sourcing and recommended solutions

Course Agenda:

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

Requirements:

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

About Oskar Dudycz

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

I'm an active open-source developer active especially in the Event Driven space (I was working on tools like Marten, EventStoreDB, and now Emmett). I'm sharing my journey and findings on my blog https://event-driven.io and practical samples at https://github.com/oskardudycz.