Reactive Programming with Oleh Dokuka
€1197 excl. VAT
3 days, 09:00-17:00 CET
Location & Delivery
Course delivered in English
If you are a software engineer who is building microservices, distributed systems or highly-networked applications and you want to make your system efficient and keep your code clean
Day 1 (Opt-in)
Day 1 is focused on learning the essentials of reactive programming, reactive streams, and project reactor as one of the famous implementations.
We will cover:
- The motivation behind Reactive
- We are going to look at different meanings of the word “reactive” and how reactive programming was evolving over time.
- Introduction to Project Reactor
- A short Story of Project Reactor and the Reactive Types it has.
- Project Reactor Essentials
- How to Create Flux and Mono (followed by exercises)
- How to Do essential transformations on a stream of data (followed by exercises)
- How to Deal with Multiple streams at a time (followed by exercises)
- How to Test (followed by exercises)
- Project Reactor in Action
- How to build a simple web application consuming data from multiple streams and processing them using Project Reactor
Key takeaways: Reactive System, Reactive Programming History and Motivation, Reactive Streams, Reactive In Action
Day 2 is focused on getting a proper understanding of the more advanced topics of Reactive Programmings like multithreading, backpressure, concurrency, context, and in-depth understanding of various Project Reactor configurations. Apart from that, we will be looking into tooling around Project Reactor and how they help in debugging Reactive pipes. Also, this day covers the applicability of the Project Reactor in solving common microservices problems.
We will be:
- Project Reactor in-depth
- Understanding Multithreading and Concurrency (followed by exercises)
- Control Flow of elements (followed by exercises)
- Work with Contextual Data and ThreadLocals (followed by exercises)
- Logging, Debug and collect Metrics (followed by exercises)
- Project Reactor in common scenarios
- Implementing a load balancer which should work in a few balancing modes that everyone will have to implement using Project Reactor.
- Working with Blocking API. In this task, the student will be required to adopt a blocking JPA repository using Project Reactor Scheduler API.
- Working with Backpressure on a sample of data uploading and external service API which has a strict limitation on the number of requests/second and some limitations on how data should be sent.
- Managing distributed transactions or simply talking implementing orchestrated saga pattern using Project Reactor.
Key takeaways: Project Reactor In-Depth, ThreadLocals and Project Reactor, Improving Resilience with Project Reactor, handling Transactions and Distributed Transactions, Flow Control techniques in Practice
Refactoring from MVC to Reactive WebFlux
- Best Practices in existing system migration to Reactive Paradigm
- Step-by-Step migration of Microservices System to Reactive using all the theoretical parts covered in Day 2
Key takeaways: Microservices with Reactive Spring, WebFlux, Reactive Security, R2dbc in Action, Building end-to-end Reactive System
About the trainer Oleh Dokuka
Oleh Dokuka is an experienced software engineer, Java Champion, and one of the top contributors to Project Reactor and Spring Framework. He knows the internals of both frameworks very well and advocates reactive programming with Project Reactor on a daily basis. Along with that, the author applies Spring Framework and Project Reactor in software development, so he knows how to build reactive systems using these technologies.