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.…


- 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.…

