Devoxx Poland 2016 - Christopher Batey - The Java developers' guide to asynchronous programming
Blocking/synchronous programming has been the norm in Java. However this programming model has a major limitation: it requires one thread per concurrent request. This means that the number of requests you can process concurrently cannot exceed the number of threads, which limits scaling. This talk will explore how an asynchronous programming model can be used to avoid this limitation. After an introduction to asynchronous design, there will be a live coding session where we will build an example service that makes concurrent calls. We will cover the following tools: The Java Future New in Java 8: The CompletableFuture RxJava Observables The async Servlet, Spring and JAX-RS APIs The Ratpack Promise The see the following patterns: Merging multiple calls into a single result Returning a result when a subset of multiple calls return without blocking waiting for the rest (e.g. saving an audit log without blocking the user request) Executing multiple calls and creating a result from the one that returns first By the end of the session you should be aware of the popular tools you have for non-blocking programming in Java and when and why you should use them.

Concurrency Concepts in Java by Douglas Hawkins

Devoxx Poland 2016 - Louis Jacomet - Data consistency: Analyse, understand and decide

Java Streams: Beyond The Basics

Adventures with concurrent programming in Java: A quest for predictable latency by Martin Thompson

Multithreading Dragons: STM and Structured Concurrency • Bartek Kuczyński • Devoxx Poland 2024

Is GraalVM the cure for serverless Java's ills? • Maciej Kołodziejczak • Devoxx Poland 2024

Effective Java, Third Edition Keepin' it Effective (J. Bloch)

Parallel Streams, CompletableFuture, and All That: Concurrency in Java 8

Go-like channels for Java using Project Loom • Adam Warski • Devoxx Poland 2024

Mastering Chaos - A Netflix Guide to Microservices

Designing functional and fluent API: example of the Visitor Pattern by José Paumard

Exploring reactive programming in Java by Miro Cupak

The Secrets of Concurrency, Heinz Kabutz

From Zero to Hero with Spring Boot - Brian Clozel

Tomasz Nurkiewicz — CompletableFuture in Java 8, asynchronous processing done right

How Do You Query a Stream? • Tim Berglund • Devoxx Poland 2024

Java 8 best practices by Stephen Colebourne

ASP.NET Core Full Course For Beginners (.NET 10)

"Concurrency Options on the JVM" by Jessica Kerr

