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 Master Class with Marco Heimeshoff you’ll tackle those sticking points head-on:

  • You’ll map messy domains into clean, focused bounded contexts preventing model entanglement.
  • You’ll design events that capture real business intent and learn techniques for versioning them safely as the domain evolves.
  • You’ll split read and write models with confidence, optimising performance without sacrificing consistency.
  • You’ll practise patterns for sagas, process managers, and projections that keep complex workflows reliable and observable.
  • You’ll 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.

Vuoi saperne di più sui nostri biglietti?

Biglietti

UNDERCOVER_LEARNERSCONTO 20%

Se ti stai iscrivendo al corso a titolo personale e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto, che potrai ottenere inserendo il codice UNDERCOVER_LEARNER su Eventbrite qui sopra, dove trovi "Enter promo code" (prima di premere il tasto "checkout").

N.B.: Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.

Marco Heimeshoff

Marco Heimeshoff è Software Developer, Technical Trainer, EventStorming Facilitator e Conference Speaker.

Organizzatore di KanDDDinsky, conferenza sul tema Domain-Driven Design e sul business software, e cofondatore della comunità DDD tedesca e di VirtualDDD.com.

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!







    NEWSLETTER

    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?

    ISCRIVITI ALLA NEWSLETTER :-)

    Iscriviti alla newsletter!