- Speakers
Oskar Dudycz
- Date
- 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.