Voxxed Days Microservices 2018
from Monday 29 October to Wednesday 31 October 2018.
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.
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, maintaining different read models in a CQRS-style architecture, 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 and how it can be implemented using Debezium, an open-source CDC solution based on Apache Kafka. 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.
This two-part Java based workshop explores practices for defining the right boundaries between microservices, followed by ways to exchange data across these boundaries.
Defining Service Boundaries With DDD
The first part of the workshop focuses on defining the borders between microservices. How to split up your big problem into clearly defined microservices. In real life everything is related, and seeing the individual trees in the big picture of the sprawling forest is challenging. This is where Domain Driven Design (DDD) comes to the rescue. After a short presentation about DDD, we’ll get hands-on with an actual problem to end up with a working program.
Data Streams to Cross Boundaries
In the second part we’ll discuss why microservices must avoid tight coupling and how they still can share data. Based on Kafka, Debezium and Kubernetes, our microservices will produce and consume data streams. We’ll also use change data capture to stream data changes directly out of a database, without any application changes needed. We’ll touch on how to set up Kafka clusters on OpenShift via the Strimzi project and how to monitor and tune them for performance and resilience.