Basics of CQRS and EventSourcing

A Hands-On Introduction to Command-Query Separation and Event-Driven Architecture
Stijn Vannieuwenhuyse

Basics of CQRS and EventSourcing

Basics of CQRS and EventSourcing

Stijn Vannieuwenhuyse
🇬🇧 English
Intermediate
Second quarter of 2026
Online
Total duration: 14h00


This course is meant to teach you the basics of EventSourcing, how it can be used together with CQRS (Command-Query Responsibility Segregation) and why an Aggregate (a DDD concept) and EventSourcing work very well together.

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.

For who?

This training is aimed at programmers. This training is highly practical and interactive, broken down into a series of lectures, group activities, and discussions. Active participation is required, as attendees should be willing to work in small groups with other attendees and contribute to remote modelling activities on a virtual whiteboard.

Learning outcomes

  • Basic understanding of CQRS,
  • Basic understanding of Event Sourcing,
  • Designing aggregates,
  • Designing projections,
  • How to test your models.

Agenda

Session 1

  • Part 1: Introduction into Domain-Driven Design
    • What is Domain-Driven Design?
    • What is a domain model?
    • What is the ubiquitous language?
  • Part 2: Basics of CQRS
    • What is CQRS?
    • What is the difference between CQS and CQRS?
    • What is domain centric thinking?
    • What are projections?

Session 2

  • Part 3: Basics of EventSourcing
    • What is EventSourcing?
    • What are the benefits of EventSourcing?
    • What is eventual consistency?
    • What are the traits of an event store?
  • Part 4: Aggregates
    • What is an aggregate?
    • Investigating different boundaries for an aggregate.
    • Implementing an aggregate in code.
    • Implementing a projection in code.

Requirements

  • You should be comfortable writing (and reading) C# or Java (*)
  • You have access to a C# or Java (*) coding environment and git(hub) for the coding exercises.
  • You don't need prior knowledge of CQRS or EventSourcing.
  • We will use Zoom to connect during this workshop
  • We will use Miro to collaborate. You will need access to the Miro client in your browser. (*) if you are not comfortable with these language, please let us know, so we can explore the possibilities of adapting our exercises
Stijn Vannieuwenhuyse

About Stijn Vannieuwenhuyse

Before joining Aardling, Stijn was Head of Engineering at Teamleader, a SaaS-tool to help SMBs sell, organise and bill their work. Stijn has been responsible for delivering product changes in the best way possible. Over the years he's shifted from individual coaching engineering practices, to managing overall technological vision, architecture, and strategy. He's been in charge of product decisions, has modernised the cloud operations, and has built out the quality assurance teams, all while managing the engineering teams and supporting the team leads. At Aardling, Stijn is using his experience creating great teams that deliver world-class products to help companies do the same.

All workshops by Stijn Vannieuwenhuyse
@stijnvnh
stijnvannieuwenhuyse
@stivni@mastodon.social
@stivni.bsky.social

Basics of CQRS and EventSourcing

Stijn Vannieuwenhuyse
🇬🇧 English
Intermediate
Second quarter of 2026
Online
Total duration: 14h00


Also check out