Skip to content

Details

Welcome to the next INNOQ Technology Night Rhein-Main on April 28th at our office in the Heyne Fabrik in Offenbach am Main – please note that this edition will be held entirely in English!

Here's what we have planned for you:

18:30 Doors open, Networking, Snacks and Refreshments
19:00 "Stop Fighting Your ORM: Simpler, More Flexible Systems with Event-Sourcing" with Ted M. Young, Spiral Learning, LLC
19:45 Short break
20:00 "Spring Boot Test - A look behind the curtain" with Michael Vitz, INNOQ
20:45 Networking

Stop Fighting Your ORM: Simpler, More Flexible Systems with Event-Sourcing
with Ted M. Young, Spiral Learning, LLC

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 relational database like Postgres, or a document database like MongoDB? Maybe you're a purist (like me), mapping domain objects to separate database entities that have ORM annotations (e.g., Hibernate). Or, you directly annotate your domain objects, but find yourself compromising the elegant domain model to fit the way databases store information (the infamous "Object–relational impedance mismatch").

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 appended to an ever-growing immutable 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 state-change trail that AI can leverage.

In this talk, you'll learn how event-sourcing works without complex event-sourcing libraries getting in the way. 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 other challenges to using event-sourcing, such as performance and schema evolution.

About Ted:
Ted M. Young is a Java technical coach and live coder. He's been in software development for over 30 years, following eXtreme Programming practices since 2000. Ted loves helping folks make their code more testable. He teaches Test-Driven Development (TDD), Refactoring, Domain-Driven Design, and Event Sourcing through hands-on, shared experiences. Ted created the acclaimed "JitterTed's TDD Game" used at events and companies worldwide to help people understand the nuances and benefits of TDD in a fun way.

Spring Boot Test - A look behind the curtain
with Michael Vitz, INNOQ

“Testing in Spring Boot applications is easy, just use @SpringBootTest and you're done.” What sounds so simple in theory, often looks like magic and sometimes causes problems later on.

Therefore, in this session, we will take a look behind the curtain to gain better insight into how all of this actually works. Besides that, we will touch on topics such as unit or slice testing.

I assure you that after this session, you will have a more in-depth understanding of how the Spring Boot Test magic works.

About Michael:
Michael has more than fifteen years of experience building and maintaining software for the JVM. As a senior consultant for software architecture and engineering at INNOQ, he helps clients by building well crafted and value providing software. He also contributes to open-source projects, publishes articles, delivers talks, and was announced java champion in 2021.

Related topics

Events in Offenbach am Main
Java
Software Development
Software Engineering
Spring Boot
Event Sourcing

You may also like