Skip to content

Details

Dear Java Community,

We are excited to announce our next OpenValue Meetup on June 29th in Munich.

This time, we're hosting Ted M. Young, a Java trainer, coding coach, speaker, and author visiting us from California, who will give a talk on Event Sourcing and how it challenges the well-known DDD Tactical Patterns. Expect to learn how event-sourcing works with useful code examples.

📍 Location:
OpenValue Office
Sonnenstraße 22, 80331 München

RSVP now to secure your spot.

🗓️ Agenda

  • 18:30 Arrival, food & drinks
  • 19:00 Talk
  • 20:30 Drinks & Discussions

🎤 Talk:
"Event Sourcing and the End of DDD Tactical Patterns?"
by Ted M. Young
You finally have a Domain Model that represents the business and supports the functionality of the system. Then the hard part: how do you persist that model to a database? Maybe you're a purist (like me), mapping domain objects to separate database entities. or you directly annotate your domain objects, but have to compromise the domain model to fit the way databases store information.
Event sourcing avoids this problem while providing flexible transactional (consistency) boundaries. Instead of mapping object state to tables, you store a sequence of events that led up to the current state: "Concert Scheduled", "Tickets Purchased", etc. Each event is added to an append-only log, making writes almost trivial, with "projections" making custom-fit views straightforward.
However, event sourcing requires a mind-shift from the well-known CRUD and DDD Tactical Patterns (Aggregates and Repositories), but the benefits are more flexible systems, with a less "leaky" way to externalize the state of your domain model that is easier to apply across the domain.
In this talk, you'll learn how event-sourcing works at the code level without event-sourcing libraries getting in the way of deeper understanding. We'll walk through a codebase for a Concert Ticketing system and see how straightforward the implementation can be.
We start with "Event Modeling" the system, defining the commands (user actions) that generate them, the aggregates that make business decisions (and how to move to "deciders"), and the projections used to generate the user interface. We'll see how event-sourcing makes testing easier to write and understand.
We'll end by touching on the challenges to using event-sourcing, such as performance and schema evolution.

Related topics

Events in München
Java
Domain Driven Design
Event Sourcing

You may also like