spring-webflux залежить від reactor-core і використовує його на внутрішньому рівні для формулювання асинхронної логіки та забезпечення підтримки Reactive Streams. Зазвичай WebFlux API повертають Flux або Mono (оскільки вони використовуються на внутрішньому рівні) і з випередженням приймають на введення будь-яку реалізацію Publisher зі специфікації Reactive Streams. Використання Flux у порівнянні з Mono є важливим, оскільки допомагає виразити потужність множини: наприклад, чи очікується одне або кілька асинхронних значень, що може бути важливим для прийняття рішень (наприклад, при кодуванні або декодування HTTP-повідомлень).

У разі анотованих контролерів WebFlux легко адаптується до реактивної бібліотеки, обраної програмою. Це робиться за допомогою ReactiveAdapterRegistry, який забезпечує засоби підтримки реактивної бібліотеки та інших асинхронних типів, що підключаються. У реєстрі вбудована підтримка RxJava 3, співпрограм Kotlin та SmallRye Mutiny, але ти можеш зареєструвати й інші сторонні адаптери.

Починаючи з версії Spring Framework 5.3.11, підтримка RxJava 1 і 2 припинена відповідно до рекомендацій RxJava про закінчення терміну життєвого циклу та рекомендацій по оновленню до RxJava 3.

Для функціональних API (таких як функціональні кінцеві точки, WebClient та інші) застосовуються загальні для API WebFlux правила — Flux та Mono використовуються як значення, що повертаються, а Publisher зі специфікації Reactive Streams — як вступні дані. Коли надається Publisher, чи то кастомний, чи з іншої реактивної бібліотеки, він може прийматися лише за потік із невідомою семантикою (0..N). Якщо, однак, семантика відома, можна обернути його за допомогою Flux або Mono.from(Publisher) замість того, щоб передавати сирий Publisher.

Наприклад, за наявності Publisher, який не є Mono, програма запису повідомлень бібліотеки Jackson у форматі JSON приймає декілька значень. Якщо тип медіа має на увазі нескінченний потік (наприклад, application/json+stream), значення записуються та скидаються окремо. В іншому випадку значення буферизуються до списку та виводяться у вигляді масиву у форматі JSON.