Avanscoperta
Event Sourcing & CQRS Master Class: Build Future-Proof Systems

Event Sourcing & CQRS Master Class: Build Future-Proof Systems

Learn to Model, Evolve, and Scale Complex Systems

Event Sourcing & CQRS Workshop: From Code to Concept

Event Sourcing and CQRS can unlock transparency, scalability, and graceful evolution.
What’s hard is turning the blog-post promise into production-ready code. Where do aggregates end and bounded contexts begin? How do you refactor a stream full of historical events? How do you model long-running workflows without tying yourself in knots?

In this two-day Event Sourcing & CQRS Masterclass with Marco Heimeshoff, you’ll work through the real challenges and you’ll:

  • Map messy domains into clean, focused bounded contexts preventing model entanglement.
  • Design events that capture real business intent and learn techniques for versioning them safely as the domain evolves.
  • Split read and write models with confidence, optimising performance without sacrificing consistency.
  • Practise patterns for sagas, process managers, and projections that keep complex workflows reliable and observable.
  • Dig into the real-world hurdles that make or break CQRS/ES projects defining the right aggregate granularity coordinating complex, cross-aggregate transactions handling cross-cutting validation without leaking domain rules.

Throughout the class Marco Heimeshoff pairs short theory bursts with guided, hands-on exercises. You’ll model, code, refactor, and deploy, seeing firsthand how each decision shows up in your event stream.
Join us and make the leap from curious to competent, and build systems that stay future-proof, no matter how the future changes.

Learning Objective

By the end of the workshop, you’ll be able to:

  • Design scalable, auditable, event-driven systems from scratch that can evolve safely as business needs change.
  • Model real-world behaviour with rich, semantic commands and events, capturing intent and outcomes unambiguously.
  • Carve the domain into cohesive Bounded Contexts and apply CQRS to keep write-side decision-making isolated from read-side projections, taming complexity as the system grows.
  • Implement a production-ready architecture that combines CQRS with Event Sourcing, giving you full traceability, time-travel debugging, and flexible data-shaping options.
  • Build a rapid red-green-refactor feedback loop: write expressive, domain-driven tests that replay event streams to verify behaviour over time and guard against regression.

The workshop is relentlessly practical: you’ll learn how meaningful separation of concerns, clear bounded contexts, and an event-centred testing cycle combine to produce antifragile systems. Systems that welcome change instead of fearing it.

The Trainer

Marco Heimeshoff is a Software Developer, a passionate EventStormer, a coach and a Speaker.
Care Bear of DDD, cultural optimist, helping others to become better versions of themselves.

Marco Heimeshoff is also the co-organiser of KanDDDinsky.

With over a decade of experience, he helps teams grow by guiding them through everything from code to culture, teaching practical mastery of Domain-Driven Design, Agile development, functional programming, and CQRS with Event Sourcing.

When he’s not consulting with companies around the world, Marco speaks at international conferences on Domain-Driven Design, socio-technical systems, and software design fundamentals.

Target Audience

This workshop is designed for:

  • Software Architects looking to evolve legacy systems or design new ones
  • Senior Developers ready to move beyond layered architectures
  • Team Leads & Tech Leads dealing with scaling challenges and distributed systems
  • Anyone working with Domain-Driven Design, microservices, or event-driven systems.

If you’re exploring semantic software, messaging, or tackling complex business domains, you’re in the right place.

Topics

  • Event Sourcing: Events, event streams, and domain models
  • Events and Storage: managing event stores
  • Event Replay & Versioning: Rebuilding state and evolving events
  • Eventual Consistency: Handling distributed systems and consistency
  • Semantic Testing with Events: Writing tests for event flows and state transitions
  • CQRS: Benefits of Command and Query model separation
  • Command and Query Models: Working with commands, validation, and projections
  • Event-Driven CQRS: Using Event Sourcing to power CQRS systems.
  • Sagas: Reactive behaviour, distributed transactions, and
  • Failure handling in long running, distributed processes.

Agenda

Day 1: Mastering Event Sourcing

  • Why Event Sourcing? – Understand the power of immutable facts, auditability, traceability, and evolution.
  • Core Concepts – Learn how events, streams, aggregates and projections fit together.
  • Designing Event-Driven Systems – Practice modeling events, consistency boundaries, and storage choices.
  • Rebuilding & Evolving Systems – Use event replay and versioning to rebuild state and manage schema evolution.
  • Eventual Consistency – Handling distributed systems with Event Sourcing. How to manage business logic across different boundaries.
  • Semantic Testing – Validate system behavior with event-based testing strategies.

Day 2: Integrating CQRS with Event Sourcing

  • Introduction to CQRS – Separate reads and writes to untangle complexity and gain clarity.
  • Semantic Messaging – Capture business intent and model domain behaviors through commands.
  • Event-Driven CQRS in Action – Drive projections, listeners, and workflows from your event store.
  • Advanced Topics – Implement sagas, orchestrate long-running processes, and handle distributed failures gracefully.

How It Works

This is a fully hands-on, in-person workshop.

You’ll:

  • Build a CQRS & Event Sourcing system
  • Model commands, events, projections, and failure paths
  • Practice designing consistency boundaries and messaging patterns
  • Test your systems using event-driven flows and replays.

Every concept is reinforced through guided exercises, making sure you leave with not just theory, but muscle memory.

FAQ

Do I need to know something beforehand in order to participate in this workshop?
You should be able to build object-oriented or functional software and use a unit testing library. Anything else needed for this workshop will be taught during the sessions.

Do I need to bring my laptop with me?
Yes, please bring your laptop with a running dev-environment for your favourite language.

About the workshop

Venue: nhow Hotel, Stralauer Allee 3
Language: English
Time: from 9.00 am to 5.00 pm each day
Max number of participants: 20 people
Included in the price: arrival coffee break, lunch and afternoon coffee break, each day
Not included in the price: travel and accommodation

Registration – Payment – Invoicelogo kanDDDinsky and avanscoperta

This workshop is co-organised with the KanDDDinsky Conference. Please note that the registration, payment, and invoicing process is managed directly by the KanDDDinsky team.

How our tickets work

Tickets

UNDERCOVER_LEARNER Discount SAVE 20%

If you’re paying the ticket out of your own pocket and you don’t have a VAT number, you can get a 20% discount on any tickets and on any ticket tiers!

How? Just enter the UNDERCOVER_LEARNER promotional code on the field "Enter promo code" in the section above (before hitting the button "Checkout").

Please note: this code cannot be used in conjunction with any other offers/discount codes, and it applies to any ticket tier.

Marco Heimeshoff

Marco Heimeshoff is a Trainer, EventStorming Facilitator, Speaker, Software developer.

He organizes KanDDDinsky, a conference about Domain-Driven Design and the art of business software and co-founded the German DDD community and VirtualDDD.com.

Are you interested in this course?

If you have any specific questions, or if you want to receive more information on dates, content or offers about this course, drop us a line. We'll gladly get back to you!







    NEWSLETTER

    Get exclusive content from experts in software development, technology, business and design!



    SUBSCRIBE TO OUR NEWSLETTER!
    :-)

    Subscribe to our newsletter!