Reactive Programming in Java: An Analysis of Application Performance and Developer Experience

  • This thesis analyzes the practical implications of integrating reactive programming into Java applications, emphasizing performance characteristics and developer experience. Through the implementation and evaluation of test applications developed using Project Reactor, the study assesses the effectiveness of reactive programming under various workloads, with particular emphasis on web applications. In addition, a survey conducted among software developers provides valuable insight into the developer satisfaction and common implementation challenges. The study further evaluates the code complexity of reactive programming compared to traditional imperative programming. Alternative frameworks such as RxJava and emerging technologies such as Java Virtual Threads are also discussed. The results indicate that developers perceive reactive code as more complex, although traditional complexity metrics often underestimate this cognitive load. Performance improvements are primarily observed in I/O-bound workloads, while CPU-intensive tasksThis thesis analyzes the practical implications of integrating reactive programming into Java applications, emphasizing performance characteristics and developer experience. Through the implementation and evaluation of test applications developed using Project Reactor, the study assesses the effectiveness of reactive programming under various workloads, with particular emphasis on web applications. In addition, a survey conducted among software developers provides valuable insight into the developer satisfaction and common implementation challenges. The study further evaluates the code complexity of reactive programming compared to traditional imperative programming. Alternative frameworks such as RxJava and emerging technologies such as Java Virtual Threads are also discussed. The results indicate that developers perceive reactive code as more complex, although traditional complexity metrics often underestimate this cognitive load. Performance improvements are primarily observed in I/O-bound workloads, while CPU-intensive tasks show limited benefits. The findings offer organizations such as DATEV eG clear guidance for adopting reactive programming by carefully balancing the potential performance gains against the associated development overhead.show moreshow less
  • Diese Arbeit untersucht die praktischen Auswirkungen der Einführung reaktiver Programmierung in Java-Anwendungen mit besonderem Augenmerk auf Performance und Entwickler*innenerfahrung. Durch die Implementierung und Analyse von Testanwendungen, die mit Project Reactor erstellt wurden, bewertet die Studie die Effektivität reaktiver Ansätze bei unterschiedlichen Workloads, insbesondere im Kontext von Webanwendungen. Zusätzlich bietet eine Umfrage unter Softwareentwickler*innen Einblicke in die Entwickler*innenzufriedenheit und typische Herausforderungen bei der Umsetzung. Darüber hinaus wird die Code-Komplexität reaktiver Programmierung gegenüber klassischer imperativer Programmierung evaluiert. Alternative Frameworks wie RxJava sowie neuere Ansätze wie Java Virtual Threads werden ebenfalls betrachtet. Die Ergebnisse zeigen, dass reaktiver Code von Entwickler*innen als komplexer wahrgenommen wird, obwohl klassische Metriken diese Komplexität oft unterschätzen. Performanceverbesserungen sind vor allem bei I/O-gebundenen WorkloadsDiese Arbeit untersucht die praktischen Auswirkungen der Einführung reaktiver Programmierung in Java-Anwendungen mit besonderem Augenmerk auf Performance und Entwickler*innenerfahrung. Durch die Implementierung und Analyse von Testanwendungen, die mit Project Reactor erstellt wurden, bewertet die Studie die Effektivität reaktiver Ansätze bei unterschiedlichen Workloads, insbesondere im Kontext von Webanwendungen. Zusätzlich bietet eine Umfrage unter Softwareentwickler*innen Einblicke in die Entwickler*innenzufriedenheit und typische Herausforderungen bei der Umsetzung. Darüber hinaus wird die Code-Komplexität reaktiver Programmierung gegenüber klassischer imperativer Programmierung evaluiert. Alternative Frameworks wie RxJava sowie neuere Ansätze wie Java Virtual Threads werden ebenfalls betrachtet. Die Ergebnisse zeigen, dass reaktiver Code von Entwickler*innen als komplexer wahrgenommen wird, obwohl klassische Metriken diese Komplexität oft unterschätzen. Performanceverbesserungen sind vor allem bei I/O-gebundenen Workloads erkennbar, während CPU-intensive Aufgaben weniger profitieren. Die Ergebnisse ermöglichen Organisationen wie DATEV eG, fundierte Entscheidungen bezüglich der Einführung reaktiver Programmierung zu treffen, indem Performancevorteile systematisch dem zusätzlichen Entwicklungsaufwand gegenübergestellt werden.show moreshow less

Download full text files

Export metadata

Additional Services

Search Google Scholar
Metadaten
Author:Joshua BrandesORCiD
URN:urn:nbn:de:bvb:92-opus4-42529
Place of publication:Nürnberg
Referee:Alexander Kröner
Document Type:Bachelor-/Diplom Thesis
Language:English
Publishing Institution:Technische Hochschule Nürnberg Georg Simon Ohm
Granting Institution:Technische Hochschule Nürnberg Georg Simon Ohm
Date of final exam:2025/05/27
Release Date:2025/09/29
Tag:Java; code complexity; developer experience; functional programming; performance; reactive; web applications
Pagenumber:112
institutes:Fakultät Informatik
Licence (German):Creative Commons - CC BY-SA - Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International
Verstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.