As the number of users of services on the Internet grows, the importance of scaling web applications increases. The system performance problem becomes more acute in a highly loaded state. There are various ways to optimize the performance of an application, including at the stage of architecture design. The purpose of this article is to develop a non-blocking web application on a reactive stack of technologies to solve the problem of performance under high load. In the course of the work, the principles of processing requests in the reactive model were considered. To organize the reactive approach, the Project Reactor library was used and a diagram of its operation was given. In addition to the Project Reactor library, the Spring WebFlux framework was considered, which allows you to develop full-fledged non-blocking web applications at all system levels. Examples of the program code of services using the described technologies are given. Further, an alternative implementation of the specification of reactive streams based on coroutines from the kotlinx.coroutines library is proposed, and some possibilities of their application are demonstrated. In conclusion, general conclusions are formulated regarding the effectiveness of using the reactive approach to solve the performance problem in modern web applications, and a comparative characteristic is given in relation to classical blocking applications.