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:
This 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 ;)
What participants say about this workshop
"Really hands-on. Fantastic host. Creative and collaborative exercises. I've gained the ability to explain Event Concepts to colleagues. This workshop will help me develop better-quality applications."
- workshop participant 2023
"The instructor gave clear explanations throughout. This workshop has helped me decide how to use Event Sourcing in my own systems."
- workshop participant 2023
"I will apply some elements, starting tomorrow. Great course. "
- workshop participant 2023