Reactive and Asynchronous Models

Compare Java reactive and asynchronous models so event streams, async workflows, and backpressure concerns are handled with the right abstraction.

Reactive and asynchronous models are both attempts to deal with work that should not block a straightforward call stack, but they solve different problems. Async workflows focus on deferred completion and composition. Reactive models focus more heavily on event streams, demand, and backpressure.

That distinction matters in Java because teams often mix these tools without being clear about the reason. A CompletableFuture pipeline, a reactive stream, and a virtual-thread request flow may all be valid, but they express different assumptions about lifetime and load.

The child pages focus on those assumptions so you can choose the right model instead of layering multiple async abstractions on top of one another by habit.

In this section

Revised on Thursday, April 23, 2026