Contents

What is Helidon?

Helidon is a collection of Java libraries for writing microservices that run on a fast web core powered by Netty. It’s small, fast, and fun to use.

Helidon is open source under the Apache 2.0 license. Sources are available on GitHub.

Helidon is cloud-native ready. It provides fast start-up time and has low memory consumption and a small disk footprint. It also comes with a full observability stack out of the box including health checks, metrics, tracing and logging.

Helidon fully supports GraalVM native image allowing you to build a native executable from your Java application.

Helidon Flavors

Helidon comes in two flavors: Helidon SE and Helidon MP. Think about these flavors as frameworks providing similar functionality but offering different developer experiences.

Helidon SEHelidon MP
Gives you full transparency and puts you in control.Built on top of the Helidon SE libraries and provides a platform that is familiar to enterprise Java developers.
Microframework model with a very small footprint and limited functionality (~7 MB).MicroProfile implementation; slightly larger footprint than SE (~13 MB).
Functional style, reactive, non-blocking.Declarative style with dependency injection.
Transparent "no magic" development experience; pure java application development with no annotations and no dependency injections.Developer experience similar to that of Spring Boot, Jakarta EE and MicroProfile; layers on some Jakarta EE components (CDI, JAX-RS, JSON-P, JSON-B).
Learn more about Helidon SE.Learn more about Helidon MP.

To help illustrate the differences, below are two samples implementing a simple RESTful service. One uses Helidon SE, the other Helidon MP.

Helidon SE sample
Routing routing = Routing.builder()
    .get("/hello",
        (req, res) -> res.send("Hello World"))
    .build();

WebServer.create(routing)
    .start();
Copied
Helidon MP sample
@Path("hello")
public class HelloWorld {
    @GET
    public String hello() {
        return "Hello World";
    }
}
Copied

What flavor shall I use?

Use Helidon SE if

  • Performance is your main goal.

  • You are familiar with reactive programming.

  • Your application is heavily using concurrency.

  • You are not planning to use any CDI-based components.

  • You want to use a minimum number of third-party dependencies.

Use Helidon MP if

  • You want to base your application on modern enterprise Java standards such as Jakarta EE and MicroProfile.

  • You are familiar with Java EE, Jakarta EE or Spring Boot and would like to have a similar development experience.

  • You are migrating existing Java EE/Jakarta EE application to microservices.

  • You are planning to use CDI components or extensions.

  • You are planning to use JPA for data access and Jersey (JAX-RS) for RESTful services.

Note

If you don’t know which Helidon flavor to use – use Helidon MP.

Prerequisites

Helidon requires Java and Maven. You might also need Docker and Kubernetes depending on how you plan to deploy your services.

Prerequisite product versions for Helidon 3.2.16
Java SE 17 (Open JDK 17)Helidon requires Java 17+.
Maven 3.6.1+Helidon requires Maven 3.6.1+.
Docker 18.09+You need Docker if you want to build and deploy Docker containers.
Kubectl 1.16.5+If you want to deploy to Kubernetes, you need kubectl and a Kubernetes cluster (you can install one on your desktop.

We also strongly suggest installing the Helidon CLI (command line interface) which helps in generating and building Helidon projects.

Migration

In case you need to upgrade the version of Helidon, follow the Migration Guides.

For migration from Helidon 1.x to 2.x:

For migration from Helidon 2.x to 3.x:

Next Steps

Choose a Helidon flavor to explore and start using it. Check out the following:

Helidon Book

The book Beginning Helidon is highly recommended for all Helidon 3.x users. Our colleagues Dmitry Kornilov, Daniel Kec, and Dmitry Aleksandrov authored it, while Tomas Langer and David Kral provided their reviews.

This publication serves as a comprehensive manual for designing cloud-native microservices with Helidon. It offers a detailed exploration of how to maximize the advantages of the cloud by optimizing applications for swift startup times, minimal memory consumption, and a compact disk footprint, all attainable through Helidon. By utilizing Java 17, this framework provides access to cutting-edge code features while adhering to contemporary enterprise Java standards, such as those outlined by MicroProfile.

Throughout the book, you will gain insights into enhancing your microservices with observability and security, seamlessly working with databases, and interacting with other services. The content thoroughly covers the MicroProfile 5.0 platform specifications alongside independent specifications like Messaging and Long Running Actions.

Furthermore, the book delves into how Helidon facilitates the creation of lightning-fast native executables through GraalVM integration and explains how to craft exceptionally responsive microservices using Helidon Reactive APIs.

Each chapter adopts a practical, hands-on approach, introducing various Helidon concepts through real-world scenarios and practical examples.

Beyond its instructional value, this book serves as an excellent study guide for the Oracle Helidon certification.

Helidon book

Available from Amazon and all other bookstores.