Reactive Programming for 20,000+ RPS Parallel Processing: Insights from a Naver Interviewer

This course is for developers who want to find fundamental solutions in environments where response times slow down as traffic increases, thread pools are quickly exhausted, and bottlenecks worsen with more external API calls. It helps you look at problems from the perspective of changing the architecture itself, rather than simply scaling out servers. Through this course, you will first understand the limitations of the traditional Spring MVC "Thread per Request" model. You will examine at the code level why throughput doesn't increase even when CPU resources are available, and exactly how blocking I/O occupies system resources. Next, you will learn the concepts and standard specifications of Reactive Streams and master how to handle data streams using Reactor's Mono and Flux. Beyond simple usage, you will learn through hands-on practice how data flows start, how they are consumed, and how throughput is controlled. In particular, you will directly implement design patterns that prevent OOM (Out of Memory) or overloads using Back Pressure. Additionally, you will understand the event loop-based processing structure of Spring WebFlux and conduct comparative exercises on how Non-Blocking I/O operates during actual request processing. By placing MVC and WebFlux side-by-side to verify their structural differences, you will also establish criteria for when to choose Reactive. This goes beyond simply "learning asynchrony." You will learn how to handle more requests with fewer threads, how to maintain a stable flow in environments with high external API dependencies, and develop the design intuition to secure throughput in high-concurrency environments.

(5.0) 2 reviews

61 learners

Level Beginner

Course period Unlimited

Java
Java
Spring
Spring
Spring Boot
Spring Boot
Parallel Processing
Parallel Processing
webflux
webflux
Java
Java
Spring
Spring
Spring Boot
Spring Boot
Parallel Processing
Parallel Processing
webflux
webflux

What you will gain after the course

  • How to design and implement a Spring WebFlux-based non-blocking server from scratch

  • Ability to design and control data streams using Mono and Flux

  • Architectural design capability to prevent overload by applying back pressure

  • The ability to explain the structural differences between MVC and WebFlux and provide criteria for selection.

  • Architecture design techniques for handling high concurrency with few threads

  • The ability to identify and resolve issues that arise when mixing blocking and reactive code

⚡ Reactive programming explained by a Naver interviewer who handles real-time traffic

  • The content below is an actual conversation.

😁Toss Developer : Traffic has been exploding lately... The CPU is fine, but the threads can't handle it and everything is getting blocked. T_T

😄 Hong : What kind of architecture does Toss use?? Are you processing with a Thread per Request structure?

😁 Toss Developer: Yeah… since most of it is MVC-based, bottlenecks occur in blocking sections when external API calls increase. It feels like even scaling up the infrastructure doesn't provide a fundamental solution.

😄 Naver Interviewer(Developer) : That's actually why I'm not a big fan of that. The pros and cons are clear... but from a throughput perspective, I don't think anything can beat reactive programming. Of course, there's a bit of a learning curve, though. T_T

😁 Toss Developer: Sigh.. I know, that's why I'm conflicted. I'm thinking about just throwing in Webflux, but it's also a burden to implement it across all the existing legacy systems ㅠㅠ

😄 Naver Interviewer (Developer): LOL, so I actually transitioned some services to a WebFlux-based Reactive architecture. I didn't do it for everything, but since even a portion is handled with non-blocking, the throughput scales well even with the same resources.

😄 Hong: But if you introduce Reactive just by hearing the concept, couldn't it actually become more complex?

😄 Naver Interviewer (Developer): Right, actually, just knowing Mono and Flux doesn't solve everything. Since there are many network failures and practical issues, I think things like event loops, Back Pressure, and mixing in blocking code should at least be considered.

😄 Naver Interviewer (Developer): Since it just crossed my mind, how about we try making this?? Hahaha

😄 Hong : Ah.... I'm in trouble now lol. This wasn't what I intended;;

😁 Toss Developer: I'd love that lol. Highly recommended!!! I'll take a listen too... Since I've just been churning out MVC lately, I feel like my form?? has dropped a bit lol

🌊 Is it enough for a backend developer to only be good at synchronous methods?

What kind of architecture are you currently using to run your servers? Are you satisfied and running smoothly with a traditional Spring MVC-based setup? But are you actually experiencing high traffic and handling it satisfactorily? Let's imagine a situation like this.

  • The problem of slowing response times as external API calls increase

  • A situation where the thread pool is quickly exhausted

  • A structure where infrastructure costs increase along with rising traffic

  • The experience of code becoming increasingly complex when trying to implement asynchronous processing

In modern backend environments, we don't aim to write code that simply works. Beyond that perspective, the ability to design architectures that can efficiently handle traffic is becoming increasingly important. How do you contemplate and implement these aspects?

The answer to this question lies right here in this lecture. Learn about Spring WebFlux by discovering how to efficiently handle multiple requests with fewer threads, maximize system resources based on Non-Blocking I/O, and design stable data flows using Back Pressure.

This is not a course that simply covers theory. I hope you take the time to learn how to directly use and implement the skill of WebFlux through various actual source codes. 🚀

🔥 Why Spring WebFlux!!

Spring WebFlux is a non-blocking based Reactive web framework. While traditional Spring MVC follows the Thread per Request model, WebFlux uses an event loop-based non-blocking architecture.

Spring WebFlux has the following characteristics.

  • Non-Blocking I/O

    • It does not occupy threads while processing requests and utilizes resources efficiently until I/O operations are completed. This allows for high concurrency to be handled even with a small number of threads.

  • Reactive Streams & Back Pressure

    • It operates based on the Reactive Streams standard and can regulate the processing speed between data producers and consumers through Back Pressure. This prevents system overload caused by excessive data influx.

  • Event Loop-based Processing

    • It operates on an event loop-based architecture rather than the traditional thread-per-request model, providing an efficient processing structure even in large-scale concurrent request environments.

  • High Concurrency

    • It has strengths in high-traffic environments by processing tasks with long waiting times, such as external API calls and DB I/O, without thread blocking.

  • Functional & Annotation

    • It supports not only annotation-based development similar to Spring MVC but also functional-style API configuration using RouterFunction.

The official documentation describes Spring Webflux as follows.

The original web framework included in the Spring Framework, Spring Web MVC, was purpose-built for the Servlet API and Servlet containers. The reactive-stack web framework, Spring WebFlux, was added later in version 5.0. It is fully non-blocking, supports Reactive Streams back pressure, and runs on such servers as Netty, and Servlet containers.

Both web frameworks mirror the names of their source modules (spring-webmvc and spring-webflux) and co-exist side by side in the Spring Framework. Each module is optional. Applications can use one or the other module or, in some cases, both — for example, Spring MVC controllers with the reactive WebClient.


( Spring Web MVC, the original web framework included in the Spring Framework, was designed based on the Servlet API and Servlet containers. Later, in version 5.0, Spring WebFlux, a web framework based on the Reactive stack, was added.

Spring WebFlux operates in a completely non-blocking manner and supports Reactive Streams' Back Pressure. Additionally, it can run not only on servers like Netty but also on traditional Servlet containers.

The two web frameworks follow their respective source module names (spring-webmvc, spring-webflux) and coexist side-by-side within the Spring Framework. Each module is optional. An application can use just one of them, or in some cases, use both modules together. For example, it is possible to use a Spring MVC controller while also using the reactive-based WebClient. )

You should not understand Spring WebFlux simply as being asynchronous. You must understand concepts such as Non-Blocking I/O-based processing, high concurrency with minimal resources, and Back Pressure. Especially in an MSA environment where inter-service communication is frequent, the Reactive approach is becoming a necessity rather than an option.

Through this course, I recommend you understand Reactive programming not just as simple asynchrony, but as a technology for securing actual throughput, and gain experience that you can apply immediately by actually testing it. 🚀

🚀 What do actual job postings require??

Toss Server Developer JD

Toss Payments Server Developer JD

Server Developer JD for Daou Kiwoom Group affiliates

Hecto Group Server Developer JD

Features of this course

📌 A course based on Reactive design experience in the Naver platform environment

  • This course is not simply about explaining WebFlux syntax. It starts by explaining the background of what problems were encountered in actual environments with high traffic and heavy external API dependencies, and why a Reactive architecture was chosen.

    This is a lecture that provides a practical answer to “Why WebFlux?”


📌 Curriculum focused on over 90% hands-on practice

  • Reactive is difficult to understand through theory alone. You can only truly get a feel for it once you personally verify the operational flow of Mono and Flux, Non-Blocking processing methods, and the event loop-based structure through code.

    This course is designed to help you understand Reactive flows by spending most of the time on hands-on practice, allowing you to see and experience them firsthand.


📌 Leveling up by identifying the structural differences between MVC and WebFlux

  • The word "asynchronous" alone is not enough to explain it. You can prepare for a distinguished developer career by understanding the limitations of the Thread per Request model, the bottlenecks created by blocking sections, and how non-blocking architectures operate.


📌 Provides a higher-level perspective for juniors

  • For seniors, it provides criteria for architectural selection

    Beyond being a developer who simply builds CRUD servers, you can develop design capabilities that consider traffic and resource efficiency.

    WebFlux is not just a "trendy technology," but a process of properly understanding one of the options available in high-concurrency environments.

🤭 The Naver interviewer who helped prepare this lecture!

Ande (Naver)

Backend Server Developer with 10 years of experience

Click on the instructors' names to view their detailed profiles!

I created this lecture because I wanted to share and discuss the various technologies and stacks I know with others. I hope others can acquire my know-how and avoid making the same mistakes I did.

I joined this project through a recommendation from an acquaintance (a Kakao interviewer) and participated in the filming under Hong's leadership. I have put in a lot of effort to include as much content as possible, so I ask for your interest. Also, please feel free to ask questions. I will do my best to check and answer them. Thank you.

[Current] NAVER Server (HQ) Developer

[Former] Backend Developer at Shinsegae Group

[Former] Healthcare startup server developer

[Former] Majored in Computer Science at a 4-year university in Seoul

Notes

Practice Environment

  • OS

    • Apple M3 Air

    • Docker version 28.0.0, build f9ced58158

    • java 17.0.12 2024-07-16 LTS

I am running an open chat room to help you prepare for your career. We look forward to your interest!

Recommended for
these people

Who is this course right for?

  • A backend developer feeling anxious about thread pool exhaustion as traffic increases

  • Spring developers who feel the limitations of the MVC architecture but haven't found an alternative

  • Developers who want to adopt Reactive but cannot even start because the concepts feel vague.

  • A developer on a team where the cost burden is increasing because they solve problems only through infrastructure expansion

  • A platform developer concerned about communication latency issues between services in an MSA environment

  • A developer who feels a thirst for career growth due to a lack of experience in designing high-concurrency environments

Hello
This is Hong

8,049

Learners

510

Reviews

145

Answers

4.7

Rating

27

Courses

Introduction

I started studying development after finding an interest in it while idling at home, and I am currently in charge of platform server development in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in practice.

 

These lectures are not created solely through my own knowledge. Every lecture is made together with others.

 

Instructor Experience

[Former] Blockchain developer related to Sandbox IP

[Former] Metaverse Backend Developer

[Current] A veteran server developer in Pangyo

 

Interview History

Other Inquiries

  • unduck2022@gmail.com

More

Curriculum

All

25 lectures ∙ (6hr 0min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

2 reviews

5.0

2 reviews

  • kyletes6021420님의 프로필 이미지
    kyletes6021420

    Reviews 2

    Average Rating 5.0

    5

    88% enrolled

    I was deeply impressed by this. Even as a developer in my 6th year in the industry, this lecture makes me realize how much I still have to learn. It was great content that delved into the core essentials despite being a simple topic. Thank you.

    • jhong
      Instructor

      Hello letes ky, thank you for leaving such a great review!!

  • youngba8935643님의 프로필 이미지
    youngba8935643

    Reviews 10

    Average Rating 5.0

    5

    88% enrolled

    I really enjoyed it; it was very efficient as it picked out only the core content!

    • jhong
      Instructor

      Hello Tenburger, thank you for leaving such a great review!!

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

Limited time deal

$49,500.00

50%

$77.00