Gunnar Morling | Devoxx

Gunnar Morling
Gunnar Morling Twitter

From Red Hat

Gunnar Morling is a software engineer and open-source enthusiast by heart. He’s leading the Debezium project, a tool for change data capture (CDC). As part of the Hibernate team, he contributes to Hibernate Validator, Search and OGM. Gunnar is the spec lead for Bean Validation 2.0 (JSR 380) and the founder of the MapStruct project. Prior to joining Red Hat, he worked on a wide range of Java EE projects in the logistics and retail industries. He’s based in Hamburg, Germany.


java Java Language & Server Side

Map me if you can! Painless bean mappings with MapStruct


The mapping between different data models is a common but unpleasant task for developers, e.g. when propagating data from an internal domain model to the elements of a REST facade, UI layer or external web service.

Writing conversion code by hand is tedious and error-prone, while reflection-based solutions suffer from poor performance and the lack of type-safety. MapStruct takes a fresh look at the issue and generates mapping code at compile time, based on Java interface definitions. The resulting code is type-safe and super-fast, has no dependencies and is easy to understand (and debug, if ever needed). Providing many type conversions out of the box, MapStruct also allows you to customize and amend mappings as needed.

We'll discuss typical mapping problems and their solution with MapStruct. You'll see the generator in action (CLI and IDE) and quickly forget about the pain bean mappings used to give you in the past.

bigd Big Data, Machine Learning, AI & Analytics

Change Data Streaming Patterns for Microservices With Debezium


Debezium (noun | de·be·zi·um | /dɪ:ˈbɪ:ziːəm/) - Secret Sauce for Change Data Capture

Streaming changes from your datastore enables you to solve multiple challenges: synchronizing data between microservices, gradually extracting microservices from existing monoliths, maintaining different read models in CQRS-style architectures, updating caches and full-text indexes, and feeding operational data to your analytics tools.

Join this session to learn what change data capture (CDC) is about, how it can be implemented using Debezium, an open-source CDC solution based on Apache Kafka and how it can be utilized for your microservices. Find out how Debezium captures all the changes from datastores such as MySQL, PostgreSQL and MongoDB, how to react to the change events in near real-time, and how Debezium is designed to not compromise on data correctness and completeness also if things go wrong.

In a live demo we'll show how to set up a change data stream out of your application's database, without any code changes needed. You'll see how to sink the change events into other databases and how to push data changes to your clients using WebSockets.