Amazon began pioneering the concept of serverless architecture back in 2014 with the introduction of AWS Lambda. It may not have taken the world by storm, but interest is growing in the pay-as-you-go model that enables the execution of small units of work without the need to provision, scale, and maintain servers.

In the serverless world - where code is loaded on demand and charges are in gigabyte-seconds - a premium is placed on lighting-quick startup times, low-memory utilization and functions that execute quickly. Scripting languages like Python and Node.js, perceived as most suitable under these constraints, have dominated the space thus far. It’s fair to say that Java has been slow to adapt itself. Red Hat engineer Jason Greene sums it up nicely:

...we now live in a world dominated by the cloud, mobile, IoT, and open source, where containers, Kubernetes, microservices, reactive, Function-as-a-Service (FaaS), 12-factor, and cloud-native application development can deliver higher levels of productivity and efficiency. As an industry, we need to rethink how Java can be best utilized to address these new deployment environments and application architectures.

Around this time last year, the release of Micronaut saw a serious attempt to push Java into the serverless space. Boasting not only fast startup times and low memory consumption, but also a programming model familiar to Spring enthusiasts. Earlier this month, Red Hat announced their own solution: Quarkus.

Quarkus is a Kubernetes Native Java framework tailored for GraalVM and HotSpot, crafted from best-of-breed Java libraries and standards. The goal of Quarkus is to make Java a leading platform in Kubernetes and serverless environments while offering developers a unified reactive and imperative programming model to optimally address a wider range of distributed application architectures.

This caused quite a stir on Twitter; “Game changer” and “The future of Java applications” were some of the statements being made. No doubt we can expect to see more of Quarkus at the major Java conferences in 2019.

Until then, we thought we may as well ride the wave of hype and take a look at what Quarkus is all about. We have a short guide where we'll run a basic application and highlight some appealing developer features, like live-reloading (code → refresh browser → repeat), dependency injection and support for both imperative and reactive programming styles. And finally, to make it a little more interesting - and because it's one of our favorite tool kits - we’ll attempt to integrate Vert.x as well.