techorama, deep knowledge IT conference
May 06 - 08 | 2024 Antwerp | Belgium

Practical Introduction to Event Sourcing

Monday 06 May

09:00 - 17:00

oskar-dudycz.png
Oskar Dudycz

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.
8. Saga, Choreography, Process Manager, handling distributed processes.
7. Event Sourcing in the context of application architecture, integration with other approaches.
8. Good and bad practices in modelling and handling events.
9. 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

 

Depending on the chosen technology, clone the repositories and follow the setup instructions, ensuring that the environment works locally for you:

 

I encourage you to watch the introduction talk. It's not required but it'll allow us to go faster through the exercise and learn more stuff:

I'm a developer, technical team leader, and architect. I started a career before StackOverflow existed. For over 16 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 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.