Traditional programming techniques that focus primarily on handling the request-response cycle tend to fall out of favor when it comes to dealing with the distributed load placed on modern enterprise applications. And in this case, the term distributed doesn't refer to the geographic distribution of the hardware or the clients. In this context, we are speaking about the manner in which a single request coming into a complex, modern application can spawn a distributed number of parallel and asynchronous processes, all of which will complete at indeterminate points in time in the future.
To deal with this new nature of modern applications, software development teams are adopting a reactive programming approach to problem solving. Unfortunately, the move towards reactive programming is something that's much easier said than done, according to Ondrej Mihalyi, a software support specialist with Payara. "It's not an easy concept to grasp," said Mihalyi. "When people are used to a traditional approach, they need to think a bit differently and evaluate the approach from the beginning to the end."
Transitioning to reactive programming models
Ondrej Mihalyi, software support specialist with Payara
Another challenge with a reactive programming approach? "It's much more complex to write code in a reactive way," said Mihalyi. "You need to cope with data that is processed at a different time than when it was requested, and a different place and even a different computer than where the request came from. People don't imagine just how complex it is."
And if a reactive programming model sounds complicated to architect and design, it can be just as complicated to debug. With parallel streams performing independent processing, and responses being generated repeatedly and asynchronously, figuring what caused a given error and its point of inception can be a harrowing task.
So given the potential difficulty involved with adopting a reactive approach to software development, is it all worth it? To find out, watch the full interview between TheServerSide's Cameron McKenzie and Payara's Ondrey Mihalyi.