Performance comparison of microservices written using reactive and imperative approaches
Kacper Mochniej
kacper.mochniej@pollub.edu.plPolitechnika Lubelska (Poland)
Marcin Badurowicz
Lublin University of Technology (Poland)
Abstract
The purpose of this paper is to compare the performance of microservices based on reactive and imperative approaches. For this purpose, two microservice applications written in Java using the Spring programming framework were developed. The Spring Web and Spring Webflux modules were used for the conventional and reactive versions, respectively. During the tests, functionalities related to operations of retrieving and inserting records into the database, data processing, and file transfer were invoked. The Gatling tool was used to conduct the tests. The tests showed that reactive microservices can be more efficient in particular when there are delays in communication with services or the database. Otherwise, it depends on the complexity of the operations being performed. Microservices based on the reactive paradigm also use less RAM compared to conventional counterparts.
Keywords:
reactive programming, imperative programming, microservicesReferences
J. Thönes, Microservices, IEEE Software 32(1) (2015) 113-116.
DOI: https://doi.org/10.1109/MS.2015.11
Google Scholar
T. Nurkiewicz, B. Christensen, Reactive Programming with RxJava: Creating asynchronous, event based applications, 1st Edition, O’Reilly Media , 2016.
Google Scholar
Spring WebFlux Documentation, https://docs.spring.io/spring-framework/reference/web/webflux.html#webflux, [27.05.2023].
Google Scholar
Project Reactor webpage, https://projectreactor.io/, [27.05.2023].
Google Scholar
P. Dakowitz, Comparing reactive and conventional programming of Java based microservices in containerized environments, Master thesis, Haw Hamburg, 2018.
Google Scholar
S. Iwanowski, G. Kozieł, Comparative analysis of reactive and imperative approach in Java Web application development, Journal of Computer Sciences Institute 24 (2022) 242-249.
DOI: https://doi.org/10.35784/jcsi.2999
Google Scholar
K. Dahlin, An evaluation of Spring Webflux with focus on built in SQL features, Master thesis, Mid Sweden University, 2020.
Google Scholar
A. Nordlund, N.Nordstrom, Reactive vs Non-reactive Java Framework, Bachelor thesis, Mid Sweden University, 2022.
Google Scholar
A. Sim, O. Barus, F. Jaya, Lessons Learned In Applying Reactive System In Microservices, Journal of Physics: Conf. Series 1175 (2019) 1-6.
DOI: https://doi.org/10.1088/1742-6596/1175/1/012101
Google Scholar
G. Hochbergs, Reactive Programming and its effect on performance and the development process, Master thesis, Lund University, 2017.
Google Scholar
J. Ferreira, Reactive Microservices An Experiment, Master thesis, Polytechnic of Porto, 2022.
Google Scholar
Gatling webpage, https://gatling.io/ , [27.05.2023]
Google Scholar
Authors
Marcin BadurowiczLublin University of Technology Poland
Statistics
Abstract views: 285PDF downloads: 298
License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.