- Speakers
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:
- 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 on the.
- Challenges in Event Sourcing and EDA: delivery guarantees, event processing order, idempotency, etc.
- Saga, Choreography, Process Manager, handling distributed processes.
- Event Sourcing in the context of application architecture, integration with other approaches.
- Good and bad practices in modelling and handling events.
- 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
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:
- .NET with C# - https://github.com/oskardudycz/EventSourcing.NetCore/blob/main/Workshops/IntroductionToEventSourcing
- JVM with Java - https://github.com/oskardudycz/EventSourcing.JVM/tree/main/workshops/introduction-to-event-sourcing
- Node.js with TypeScript - https://github.com/oskardudycz/EventSourcing.NodeJS/tree/main/workshops/introduction_to_event_sourcing
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 SessionizeI'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.