Jfokus Training

About Jfokus Training

Get taught directly by the experts and interact with peers in an engaging informal environment. These are intensive, deep dive training sessions designed for advanced IT professionals which incorporate expert-led presentations.

Richard Warburton

2 Days: Reactive and Asynchronous Java

Richard Warburton, Monotonic Ltd


Reactive and Asynchronous applications are growing in popularity, but what is the best way to build them? This course teaches you how to apply the latest concurrency techniques to develop state of the art Java applications. With the rise of Microservices and Service Oriented Architectures, asynchronous concurrency is now critical to day-to-da, Java development. We start off by reviewing the differences between asynchronous and synchronous programming. You then build upon this theory by refactoring a project using different modern concurrency techniques including promises using Java 8 CompletableFuture, actors using Akka and reactive streams using RxJava. You willl learn the good, the bad and the ugly between these approaches in terms of compositionality, testability and simplicity.

When: 8-9 February 2018

Where: Stockholm, Sweden

Language: English

Format: Bring your own laptop

Price: 17 500 SEK

All prices excl. Swedish VAT and incl. lunch


Register here

Day 1

Asynchronous vs Synchronous Programming

  • Servlets
  • Asynchronous Servlets (3.0) and Spring
  • Why use asynchronous communications?
  • Solving the C10K Problem and the Microservices Performance problem
  • Timeouts

Approaches to Concurrency

  • The Reactive Manifesto and Functional Reactive Programming
  • Models of Concurrency: Event Based, Promises, The Actor Model, Reactive Streams
  • The full stack - from application right down to the OS

Promises using CompletableFutures

  • What is a Promise?
  • Motivation
  • ExecutorService
  • Creation patterns
  • Composition patterns
  • Exception handling
  • Sequence patterns

Day 2

The Actor Model with Akka

  • What is the Actor model?
  • Why and when would you use actors?
  • Using Akka
  • Testing actors
  • Recovering from exceptions
  • Integration patterns

Reactive Streams with RxJava

  • Introducing Reactive Streams
  • Connecting Reactive streams to databases and web sockets
  • Pull vs. Push models
  • Using RxJava
  • Java 9 Flow API
  • Alternative Reactive Stream Implementations
  • Threading and Back Pressure


Back to the top of the page