WebFlux é a implementação Spring Framework do Reactive Streams. Vemos um crescimento em modelos de programação reativa em nossos times em geral e o uso de WebFlux em times que estão trabalhando no ecossistema Spring. É mais bem usada em grandes ecossistemas de microsserviços, em que a alta performances das solicitações é uma preocupação. Ela permite sobrepor o processamento de solicitações de maneira assíncrona sem as complicações de se usar múltiplas threads. WebFlux usa Reactor como sua biblioteca reativa, mas é interoperável com outras bibliotecas reativas via Reactive Streams. Usa Netty como seu mecanismo fundamental de comunicações de alta performance. Embora incentivemos o uso do Reactive Streams, adotar esse modelo de programação requer uma significativa mudança de pensamento.
Spring Framework 5, released over a year ago, embraces reactive streams, a standard for asynchronous stream processing with non-blocking backpressure. The WebFlux module introduces a reactive alternative to the traditional Spring MVC module for writing web applications in the Spring ecosystem. After working with it on a number of applications, our teams have come away impressed and report that the reactive (functional) approach improves code readability and system throughput. They do note, though, that adopting WebFlux requires a significant shift in thinking and recommend to factor this into the decision to choose WebFlux over Spring MVC.