BreadcrumbHomeResourcesBlog Java Basics: What Is Helidon? February 24, 2021 Java Basics: What Is Helidon?Java ToolsBy Pavel FolIf you are a Java developer looking to transition to microservices based applications, Helidon is a worthwhile option to consider. Helidon is a lightweight set of libraries that don’t require an application server and can be used in Java SE applications. In this blog, we dive into what Helidon is, how it's used, how it works, and what Helidon SE and Helidon MP are.Table of ContentsWhat Is Helidon?Helidon Web ServerHelidon ConfigurationHelidon ArchitectureFinal Thoughts on HelidonTable of Contents1 - What Is Helidon?2 - Helidon Web Server3 - Helidon Configuration4 - Helidon Architecture5 - Final Thoughts on HelidonBack to topWhat Is Helidon?Project Helidon is a set of libraries for developing lightweight and fast microservices that are cloud-native ready.Helidon is built on top of Netty and was released under the Apache License 2.0. Helidon began in 2015 as Java for Cloud (J4C), when engineers from Oracle internally started it as a reaction to their needs in microservices development. Over the years, more people got involved and in September 2018, Helidon was released for public use. Although it is open source, you can still get commercial support.Nowadays, Helidon is quite popular. The two versions—Helidon SE and Helidon MP—both support MicroProfile and GraalVM.Helidon SEHelidon SE (sometimes also Helidon Reactive) represents a group of reactive, non-blocking microframeworks. It has a small footprint, but comes with limited functionality. It uses the functional style of APIs and there are almost no @Annotations and zero dependency injection. It does all the work underneath Helidon MP. You can still use it if you do not need the MicroProfile.With Helidon SE, an application server is not required. Instead, the application runs on pure Java. Helidon SE applications can be converted into GraalVM native executable code (GraalVM native image), which lowers the footprint even more and decreases startup time. The most advanced technologies also require advanced resources; thus Helidon is available only for Java 11 and newer.Helidon MPHelidon MP has a slightly larger footprint than SE, but is still very fast. One of the implementations of Eclipse MicroProfile, Helidon MP is built on top of Helidon libraries and provides platform definitions that are familiar to enterprise Java developers. In the MP, dependency injection is supported, all Jakarta EE standard APIs are available, and declarative programming style is used. GraalVM Native Image was originally available only for the Helidon SE, but with the release of Helidon 2.0, it is now supported in Helidon MP as well.Back to topHelidon Web ServerThe power engine of Helidon is its reactive web server based on Netty Core. The Interface of this web server is called WebServer and provides methods for creating a server and basic monitoring API.Back to topHelidon ConfigurationThe Helidon Configuration component offers many ways on how to read the configuration. Once the configuration data are loaded, they are stored in the Config object.Configuration in Helidon is made using the following parts:Config systemConfig source – location containing configuration dataConfig parser – translates source into an in-memory tree.In the default configuration, source config is loaded from application.properties or from application.yaml, which is placed in /src/main/resources. As mentioned, there are multiple sources that can be used to store configuration, but built-in support comes for the following formats:Java properties formatJSON formatYAML formatHOCON formatBack to topHelidon ArchitectureThe architecture of Helidon can be explained by the picture below. As you can see, Helidon MP is a layer on top of Helidon SE, which is a layer on top of Netty. Both Helidon modules have many components though, and these are just a few of them.All the components are available with a description in the Helidon documentation. Components for Helidon SE are explained here and for Helidon MP here.Back to topFinal Thoughts on HelidonDevelopment has started to focus more on microservices architecture in new applications, giving rise to new microservices frameworks. Some frameworks are heavier than the others, but they are usually balanced with unique features.Then there is project Helidon—offering both speed and usability. Helidon comes with a MicroProfile implementation and features a cloud-native approach. If you are in the process of starting with a new project involving microservices development, definitely consider Helidon.Final ThoughtsAs microservices usage grows, developers face new challenges. One of which involves redeploy times — with the majority of developers losing four minutes or more during each redeployment. If you're ready to save time and get back to coding, try JRebel. JRebel lets developers skip redeploys and maintains application state so developers can keep doing what they do best — coding amazing Java applications.Start Free TrialBack to top
Pavel Fol Solutions Consultant, JRebel by Perforce Pavel is a Solutions Consultant at JRebel by Perforce. Pavel is passionate about helping Java development teams increase development efficiency with our tools, while providing continued support for ongoing success.