Tatiana Chervova

Is reactive the new black? Imperative vs. reactive programming with Quarkus

Stop choosing between imperative and reactive. Learn how Quarkus lets you write standard code while gaining non-blocking performance benefits.

Is reactive the new black? Imperative vs. reactive programming with Quarkus
#1about 2 minutes

Discovering reactive programming through a modern Quarkus project

A real-world project using Quarkus and a modern tech stack serves as the motivation for exploring the challenges and benefits of reactive programming.

#2about 1 minute

Examining the trend and debate around reactive programming

Reactive programming is a growing trend seen in conference talks and online forums, but developers hold opposing views on its complexity and practical adoption.

#3about 2 minutes

Contrasting imperative, declarative, and reactive code styles

Reactive programming is a form of declarative dataflow programming that focuses on 'what' to do, differing from the step-by-step 'how' of imperative code.

#4about 2 minutes

Meeting modern application demands with the Reactive Manifesto

The Reactive Manifesto outlines the principles of responsive, resilient, elastic, and message-driven systems needed to handle today's high-concurrency and large-scale data requirements.

#5about 4 minutes

Understanding blocking vs non-blocking I/O for requests

The imperative model uses a blocking thread-per-request approach, while the reactive model uses a non-blocking event loop to handle many concurrent requests with few threads.

#6about 3 minutes

Treating data and user inputs as asynchronous streams

In reactive programming, everything from variables to user inputs can be treated as an asynchronous stream of events, which can emit values, failures, or a completion signal.

#7about 4 minutes

Managing data flow with the backpressure mechanism

Backpressure is a key reactive concept where the consumer controls the data flow by signaling to the publisher how many items it is ready to process, preventing overload.

#8about 2 minutes

Deconstructing a reactive stream pipeline in Mutiny

A code walkthrough demonstrates how Mutiny's `multi` and `uni` types create and transform data streams, which only execute upon subscription.

#9about 2 minutes

Evaluating the advantages and disadvantages of reactive code

Reactive programming offers better performance and code locality but introduces challenges like a steep learning curve, a significant mindset shift, and complex debugging.

#10about 2 minutes

Identifying when to use imperative vs reactive approaches

Choose the imperative model for self-contained, CPU-intensive tasks and the reactive model for applications with high concurrency or real-time user interfaces.

#11about 1 minute

Unifying imperative and reactive code with Quarkus

Quarkus provides a hybrid model with a reactive core that allows developers to write traditional imperative code, automatically managing the execution on the appropriate thread.

#12about 2 minutes

Summarizing key takeaways and team onboarding strategies

Key lessons include aligning the programming approach with application and team needs, and effectively onboarding new developers by pairing them with experienced engineers.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust