Itinerary
Day 1
Date - time to time
Day 2
Date - time to time
Overview
Event Sourcing has quickly become one of the most important development patterns for building modern distributed systems. In contrast to traditional state-based systems where you only store the latest state, in Event Sourcing you persist the full history of changes as events, which then can be used to derive the latest information. In turn, it will give you powerful capabilities such as audit trail, scalability, traceability, and many others.
This course provides you the basic concepts around Event Sourcing, how it relates to CQRS (Command-Query Responsibility Segregation), and how to use the pattern.
It includes hands-on coding for a basic event-sourced application. You won’t become an expert but you will understand the basics and have a feel for what is necessary to take these ideas into production systems.
Understanding Event Sourcing is a great way to enhance your expertise as a developer, grow your career, and help your customers be successful. Join us on this 1-day introduction course and get started with Event Sourcing!
Scope
This introductory training course is targeted at software developers & architects not familiar with the pattern willing to learn how to implement microservices using Event Sourcing. It will consist of 30% lecture and 70% hands-on coding and exercises. Please make sure you are aware of the prerequisites before any potential bookings.
Introduction
- Challenges of classic persistence model
- CQRS and Event Sourcing
- Event Sourcing as persistence model
- What is required from Kurrent
Benefits of Event Sourcing
- Audit trail
- Traceability, Debuggability & Observability
- Scalability & Fault Tolerance
- Temporal queries
- Separation of concerns & Decoupling
Building blocks
- Domain Event
- Command
- Aggregate
- Projection
Learning outcomes
- Explain 5 benefits of Event Sourcing
- Recognise challenges of a 3rd normal form model and explain how CQRS addresses it
- List 3 traits of an Kurrent (global ordering, optimistic concurrency & fine-grained streams)
- Implement an application with one Event Sourced Aggregate
- Explain the difference between Command and Event
- Implement a Projection that will create a read model
Prerequisites
- Proficiency in either C# and Java (these are the languages we have our sample code in currently)
- Laptop/notebook with a working development environment and ability to connect to the internet
- A sample web application up and running (should be able to accept an http request)
- Docker daemon up and running