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