Advanced

Reactive programming and its effect on performance and the development process

Hochbergs, Gustav LU (2017) In LU-CS-EX 2017-33 EDA920 20171
Department of Computer Science
Abstract
The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information.

A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the... (More)
The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information.

A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the results were compared to the results of a fully synchronous solution. The results showed that reactive programming can increase the performance during high loads. The solutions performed similarly during low load. During high load one prototype stood out with 100% of throughput and low latency. This prototype had an execution context in the thread which subscribed to the result from the executed callback methods.

Reactive programming did in this case increase performance during high loads, but it is worth noting that the execution context is important for the performance. The development process did not change significantly, but reactive programming added complexity to the code and the need for a developer with extensive knowledge in reactive programming. (Less)
Please use this url to cite or link to this publication:
author
Hochbergs, Gustav LU
supervisor
organization
course
EDA920 20171
year
type
H3 - Professional qualifications (4 Years - )
subject
keywords
Reactive programming, declarative programming, asynchronous programming, non-blocking execution
publication/series
LU-CS-EX 2017-33
report number
LU-CS-EX 2017-33
ISSN
1650-2884
language
English
id
8932146
date added to LUP
2018-01-17 18:26:39
date last changed
2018-01-17 18:26:39
@misc{8932146,
  abstract     = {The focus of this master’s thesis is to evaluate the effect of reactive programming on Playtech BGT Sports content server. The effect is evaluated mainly from a performance aspect, but a development process aspect is also taken into consideration. The content server is working in real-time and is required to have low latency and high throughput of processing of data. These characteristics are important to supply customers with the latest information.

A comprehensive theoretical research was conducted in order to be able to implement reactive prototypes correctly and to avoid common pitfalls. Three types of reactive prototypes of the content server were implemented with different execution contexts. The prototypes were tested and the results were compared to the results of a fully synchronous solution. The results showed that reactive programming can increase the performance during high loads. The solutions performed similarly during low load. During high load one prototype stood out with 100% of throughput and low latency. This prototype had an execution context in the thread which subscribed to the result from the executed callback methods.

Reactive programming did in this case increase performance during high loads, but it is worth noting that the execution context is important for the performance. The development process did not change significantly, but reactive programming added complexity to the code and the need for a developer with extensive knowledge in reactive programming.},
  author       = {Hochbergs, Gustav},
  issn         = {1650-2884},
  keyword      = {Reactive programming,declarative programming,asynchronous programming,non-blocking execution},
  language     = {eng},
  note         = {Student Paper},
  series       = {LU-CS-EX 2017-33},
  title        = {Reactive programming and its effect on performance and the development process},
  year         = {2017},
}