@misc{9234313,
  abstract     = {{HTTP clients are used to gather data from servers over a network. Several different usage scenarios for HTTP clients exist. This thesis focused on and investigated the usage of three different HTTP clients in a Spring Boot system from the perspective of implementation and performance. This system was a mock-up made by IKEA to mimic their real live Spring Boot system. The research focused on comparing the existing HTTP clients used within the backend-focused IKEA team where the study was conducted, based on Java’s built-in client and RestTemplate, with Spring’s reactive and asynchronous WebClient. The areas compared were implementation differences and performance consisting of different metrics. For the performance testing two methods were used, local tests with a mock API server and K6 tests. These tests were constructed to mimic real world scenarios and gather the relevant metrics. Further, the local tests were based on SpringBootTest with threads representing users and internal loops to mimic concurrency. Moreover, the K6 tests are configured to use the Spring Boots system’s controller to imitate a more real scenario. Following testing results showed implementation could be made shorter and easier since several manually coded methods were integrated in WebClient. However, this could be done easily only if reactive programming was understood prior. Performance was shown to be significantly better for the reactive WebClient in several regards such as response time and throughput if the entire chain for the HTTP responses were changed to be reactive. Otherwise, the Spring Boots systems blocking parts hindered performance.}},
  author       = {{Stjärnquist, Erik and Ljungerud, Liam}},
  language     = {{eng}},
  note         = {{Student Paper}},
  title        = {{A Comparative Evaluation of Java HTTP Clients for Efficient Backend Service Communication}},
  year         = {{2026}},
}

