“If you’re a Java developer and you’re writing microservices, Helidon is a great choice”
If you need an easier way to build microservices, you should give Helidon, a new open source Java microservices framework from Oracle, a try. We talked to Dmitry Kornilov, Helidon Project Lead about what’s under its hood and who should give it a try. In short, “if you’re a Java developer and you’re writing microservices, Helidon is a great choice”.
“Helidon was designed for microservices only”
Although Oracle recently open sourced Helidon, a set of Java libraries, the project itself is not new, as Dmitry Kornilov, Helidon Project Lead explained in a recent blog post. Work started some time ago and the tech giant is already using it in over 10 projects.
Project Helidon (which means swallow in Greek) is meant to make the experience of building microservices more pleasant – you could, of course, use Java EE for that but when there’s a framework readily available, why not use it?
We talked to Dmitry Kornilov, Helidon Project Lead about what’s under Helidon’s hood and who should give it a try. In short, “if you’re a Java developer and you’re writing microservices, Helidon is a great choice”.
JAXenter: Helidon is a set of Java libraries for writing microservices. What is the difference between using Java EE to build microservices and relying on Helidon? How can the latter make the experience [of building microservices] more pleasant?
Dmitry Kornilov: The development landscape is evolving quickly and the developer experience is changing to meet new challenges. Sometimes it’s changing so fast that technologies cannot be adopted quickly. Java EE is universal, it can be used to create monoliths and microservices but it’s a stable technology with a lot of legacy code.
Helidon was designed for microservices only. It’s created from scratch and doesn’t have any legacy code. Helidon SE brings a more modern and reactive approach that developers like. We tried to make it very clear: no injection ‘magic’ is used, which makes a Helidon SE application easy to debug. It is also compatible with all IDEs with no special plugins required.
For developers familiar with Java EE, we also have Helidon MP, our MicroProfile implementation. MicroProfile contains some of the more popular Java EE APIS for developing web applications (JAX-RS, CDI, etc).
Helidon SE compatible with all IDEs with no special plugins required.
JAXenter: Oracle is already using Helidon in more than 10 projects. How has Helidon helped those projects?
Dmitry Kornilov: The story is that developers want to implement a microservices architecture and are trying to move away from traditional application servers. The Jersey team has received many questions about using Jersey+Grizzly stack to create lighter microservices.
We offered Helidon as a solution and most of the teams accepted it. Also, Helidon has integrations with Oracle Cloud which are very convenient for our internal customers.
JAXenter: What are the most common use cases for Helidon?
Dmitry Kornilov: Helidon is designed for creating Java microservices. So if you’re a Java developer and you’re writing microservices, then Helidon is a great choice. It’s unique in that we provide a way for Java EE developers to use familiar APIs (with our MicroProfile support), but also have the option to explore or use the leaner set of APIs provided by Helidon SE.
JAXenter: What tools do developers need to get started with Helidon?
Dmitry Kornilov: They need JDK9 or JDK8, Maven 3.5 and any IDE they prefer.
JAXenter: What is the difference between Helidon SE and MP?
Dmitry Kornilov: Java Frameworks for writing microservices fall into a few categories:
Simple, fun, intentionally small feature set. Examples are Spark, Javalin, Micronaut, Helidon SE, etc.
Friendly to Java EE developers but a bit heavier. Some of them are build on top of fully featured Java EE application servers. Examples are Thorntail (was Wildfly Swarm), OpenLiberty, Payara, Helidon MP, etc.
- Full Stack
Full feature set, such as Spring Boot.
Helidon comes in two flavors and covers two categories — Microframeworks and MicroProfile. It’s up to the developer to choose what to use in their applications.
- Helidon SE — simple, functional, lightweight microframework developed in a modern reactive way. There is no injection “magic”. No special runtime required. JDK is used as runtime.
- Helidon MP — Eclipse Microprofile implementation providing development experience familiar to Java EE/Jakarta EE developers.
JAXenter: How does Helidon fit into the Jakarta EE universe?
Dmitry Kornilov: Helidon MP implements MicroProfile. I hope MicroProfile specifications will eventually be transferred under Jakarta EE. Also, Helidon MP uses some Jakarta EE APIs, such as JAX-RS, CDI and JSONP and implementations such as Jersey.
Helidon provides a nice on-ramp to microservices development for Java developers. We hope that it will help developers improve their productivity.
JAXenter: You mentioned in your blog post that you are working on GraalVM support. Why is it a good feature for Helidon SE users?
Dmitry Kornilov: It will make your application start and run faster. Running faster means servicing more requests per instance. Servicing more requests means you need fewer instances. Fewer instances means less money. The bottom line is that GraalVM support saves money for our customers.
JAXenter: Why should Java developers give Helidon a try?
Dmitry Kornilov: Helidon provides a nice on-ramp to microservices development for Java developers. We hope that it will help developers improve their productivity. Plus it is something new and interesting!
Hopefully, it is a good enough reason for Java developers to try it and evaluate it. If they have feedback, good or bad, we want to hear it. This will allow us to fill in gaps and strengthen the features that hit the mark.
JAXenter: What’s next for Helidon?
Dmitry Kornilov: I already mentioned Oracle Cloud integration with CDI extension. We believe it will become a part of the Helidon 1.0 release. Also, we are planning to add a Reactive HTTP client. We already have a Reactive Web Server, so a Reactive HTTP client is one missing part. This is a short-term plan.
Next year, we will release a web application with a UI that will allow the selection of Helidon components and generation of Maven projects. We are also looking at adding support for NoSQL, Eventing and OpenAPI.
JAXenter: Just out of curiosity, why did you change the name? J4C has a nice ring to it.
Dmitry Kornilov: J4C was an internal project name. We believe Helidon (which is Greek for swallow, a small, agile type of bird) sounds better and, more importantly, better reflects our goals and directions: providing a lightweight set of libraries Java developers can easily use to build microservices.
Also, we love Frank! If you don’t know Frank, it is the name of the bird in the logo.