A principal software engineer at Red Hat, Clement Escoffier, in his own words, “had several professional lives, from academic positions to management” and is now working as a Vert.x core developer. He’s an active contributor to many open source projects such as Apache Felix, iPOJO, Wisdom Framework, and naturally, Eclipse Vert.x.
At Reactive Summit in Montreal this October, he’s bringing Reactive to enterprise Java developers. In advance of his talk, we spoke to Clement about the complexity of distributed systems, the challenge of the fear of change, and why he doesn’t believe in 100% Reactive world.
What is your background and what sparked your interest in distributed systems?
When I was an undergraduate student I wanted to study distributed systems. Mainly because it was the beginning of networked and MMO games such as Diablo and Starcraft. So, I picked the distributed system option at my university. I would not say that the first year was great. The class was very dull until I decided to pursue my studies in the “research” (academic) path. Then, it was a different world. Reading Lamport, Tannenbaum, Waldo, and Fielding changed my perception. Since then, I have always been developing systems that required distribution.
Reactive is a new buzzword for many traditional developers. What is your prediction for its importance in application development over the next couple of years?
I don’t think Reactive alone is going to take over the world. It is going to be used in combination with traditional paradigms. What has changed and will continue to grow is the inversion of the interactions. Pull models are being replaced with push interactions. Of course, this existed for years, but traditional applications are now including this interaction style and it’s an excellent place for Reactive.
What is the biggest challenge companies deploying distributed Reactive systems are facing?
The biggest challenge is the false perception of complexity in distributed systems. Enterprise Java Developers believe that event-driven and message-based systems are uncontrollable and only eventually persistent which of course isn’t a suitable situation for enterprise-grade apps. But especially the experiences with Microservices-based architectures have shown the opposite to be true. Distribution and service orientation doesn’t have to be like this. There are many good solutions to implement rock-solid distributed systems that scale efficiently in the cloud.
On a more technical note, the switch from traditional synchronous development to asynchronous development is tricky for a lot of people. Fortunately, the rise of functional programming is helping people understand how “things should work.” Typically, Java Streams has done a great job infusing functional programming into traditional Java code. It has not been easy, and lots of people are still struggling with reading, writing, and understanding this type of code, but things are getting better.
What is the most ambitious professional dream you hope to achieve one day?
I don’t believe in a 100% Reactive world. There is no silver bullet. Thus, I would love to see Reactive used side-by-side with other paradigms in the same system and on a regular basis. Each paradigm has its perfect place, but today it’s tough to combine them. It’s hard to unlearn, hard to leave your comfort zone.
Who should attend your talk and what will they learn?
If you are interested to see how we are infusing Reactive in the JavaEE world, then don’t miss it. The talk explains the effort to bring Reactive Programming and Reactive Streams to traditional enterprise applications, and it’s totally reshaping traditional JavaEE applications.
Whom would you like to connect with at the conference?
I owed a beer to Markus 😉 (Editor: Markus Eisele, Director of Developer Advocacy at Lightbend). More seriously, it’s always great to see what’s happening in the Reactive community. It is refreshing. So, I just want to attend great talks!