Scalable and reliable applications using Event Sourcing and CQRS

In this course students will learn how to create scalable and reliable applications using Event Sourcing and CQRS using C#.

CQRS and Event Sourcing (ES) are described as the next level(s) in the Data Storage Maturity Model. It will give your applications better scalability, reliability and traceability than a standard three-layer-architecture. Since CQRS and ES are a mental leap for all concerned, thorough understanding of these concepts are key in this course. This course will give you insight into the concepts of CQRS and ES and will make you understand how (and when) to use them in an application. 


This course is intended for professional developers who have minimal 3 years of experience in creating .NET applications, who are comfortable with programming in C# and are familiar using a layered architecture. Knowledge about SQL, ORM’s and dependency injection is preferable.

Course outline:

Module 1: Introduction to CQRS

  • Whats difficult in a layered architecture?
  • Commanding
  • Write models and read models
  • Scalability
  • Lab 1: CQRS

Module 2: Introduction to Event Sourcing

  • The big picture of Event Sourcing
  • Storing all changes
  • Using Projections
  • Using Snapshots
  • Lab 2: Event Sourcing

Module 3: Creating an example Event Sourced/CQRS application

  • Setting up NEventStore
  • Creating and using commands
  • Handling commands
  • Raising Events
  • Handling and denormalizing events
  • Reading from the projections
  • Lab 3: Putting it all together

About the instructor Thomas Huijer

Thomas is a senior architect/consultant who coaches development teams based on more than 15 years of experience in the field. He is often present as a speaker at international events and conferences and was has worked for various companies in the role of software architect or team lead. His main interest is anything related to maintainability, clean code, design patterns, testability and managing software projects. Thomas’ teaching style is loose and informal and he’s never afraid to touch on subjects not covered in the regular courseware. For his efforts towards the C# community Thomas was awarded by Microsoft as Most Valuable Professional (MVP) on C#.


Other relevant courses