DDD Europe 2023 - Program

Practical Introduction to Event Sourcing

Pre-conference Workshops


Tickets

Speakers

Oskar Dudycz

Oskar Dudycz
Date
June 5-6
Description

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.

Summary:

  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.

Requirements:

  • 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 ;) .

Prerequisites

  • 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),
  • Laptop with latest .NET, Java or NodeJS preinstalled.
  • 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 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.