Clement had several professional lives, from academic positions to management. Currently, he’s working for Red Hat as Vert.x core developer. He has been involved in projects and products touching many domains and technologies such as OSGi, mobile app development, continuous delivery, DevOps… His main interests include processes, methods, tools that make the development of software more efficient and also more fun. He is also a Java Champion and an active contributor to many open-source projects such as Apache Felix, iPOJO, Wisdom Framework, and obviously, Vert.x.
What is your background and what sparked your interest in distributed systems?
I have a Ph.D. in software engineering, and after that, I spent a couple of years on the academic side. Even after years in the industry, my heart is still on the academic side.
Distributed systems have always been an interesting subject of study, but I’ve tried to avoid working on distributed systems for years. When you are a student starting your software study, and it was the very beginning of the Internet, distributed systems look amazing. But, after a few classes learning ISO, ARP, RMI, and so on, you are quickly disappointed. It does not look like the extraordinary landscape you imagined.
Fortunately, step by step, the curiosity sparked again, and I’ve spent most of my professional career working on middleware and distributed systems.
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 wouldn’t say it’s new. It’s a buzzword, and probably one of the less understood buzzwords. Want to make something look cooler than it is: put reactive in front of it.
There is a lot of explanation to explain Reactive’s primary goals and why it does matter today.
We are now living in a Kubernetes/Container era. Microservices and serverless are slowly becoming prominent architectural styles. Data streaming systems, that have always been there, start to expand their niche.
Reactive has a lot of essential characteristics to build such systems. So, Reactive will be a necessary trend for the next five years, but maybe under a form that is not there yet.
What is the biggest challenge companies deploying Reactive systems are facing?
I would not say it’s a single challenge. There are at least two. First, the development model and the shift in understanding asynchrony is probably the most challenging. It’s not a technical issue; it’s a mind shift. It is a barrier for many developers. When you read a book, you read sentence after sentence. Asynchrony changes this, and that confuses many people. Fortunately, there is a lot of effort made to solve this issue.
The second issue is the operation side. Building a resilient and elastic system is fantastic. Understanding what happens at runtime, observing to understand the system’s decisions, integrating the infrastructure layer and the application layers; these are the issues we are currently facing. That’s challenging and exciting at the same time!
What is the best solution to this challenge?
For several years, we have worked on multiple solutions. We have integrated most of them in Quarkus. It offers both imperative and reactive support; it’s designed for container and Kubernetes and provides observability support.
By no means is this work complete! But, the feedback is very encouraging.
What is your most ambitious professional dream that you hope to achieve one day?
Reactive systems lead to autonomous systems in some ways. Systems able to automatically react to situations to always ensure the best service and reduce costs. We may soon see the integration of reactive and autonomic computing concepts, which could change the way we build software. We already start to see such touchpoints. Kubernetes operators, for example, are a first step in this direction, KNative serving is another one. Exciting times ahead!
Who should attend your talk at Reactive Summit and what will they learn?
Everybody that is involved in the construction of distributed / Cloud / Kubernetes applications. We are all struggling to build better distributed systems. It’s an immense challenge for everyone. Reactive Summit is the place where you will see new approaches and feedback.
Do not miss Clement and his talk “Reactive Programming with Quarkus – A Reactive Mutiny!” at virtual Reactive Summit on November 10. Book your ticket now!