Jan 01, 2018

Back to the CompletableFuture: Concurrency in Action

back to the future

Elevator Pitch (~300 words)

Concurrency is hard! It is especially true for those who have only ever used Threads and Runnables. Fortunately, the Java community has been working hard on improving developer experience around multithreading programming. The declarative model has become an essential part of the concurrency development along with resource management features of JDK5, and post-JDK8 structures like CompletableFutures.

In this talk, we explore concurrency programming and how developer-friendly it has become with the latest advantages of the Java language.

Presented at


Callback hell is a known way to give any JavaScript developer nightmares. However, Java developers are not much better off since anything concurrency and multithreading related give us cold sweats.

With Threads and Runnables being the first (and often last) things we used in Java, these classes gave many of us an impression of and appreciation for the complexities of concurrency. As a result, many developers abandoned the idea of ever touching thread management in Java and focused on a single-threaded development.

Fear no more! The world of concurrency in Java has changed since JDK8 and continues to get better. This talk discusses improvements around the Concurrency API of JDK5 and the power of asynchronous programming of CompletableFutures post-JDK8. Our goal is to break out of the fear of concurrency in Java and learn about a new, declarative way of thread programming.


  1. Basics of Concurrency and Its Forms in Java
  2. Concurrency API and Declarative Model in JDK5
  3. Asynchronous development with CompletableFuture post-JDK8


Conf42 - Enterprise Software: 2021

JCon: 2021

VoxxedDays Vienna: 2018

*JDK.io: 2018

Devoxx Poland: 2018

Slide Deck