Supersonic Subatomic Java

Quarkus, why you should explore it

Or how it can help you launch your product faster

Silas Candiolli
abbeal’s tech blog

--

https://quarkus.io/

When we work with enterprise applications it's essential to have great tools to help development teams create their apps, and focus on the business rules, without losing time.

But, to choose a new framework, platform, language, or library, we need more than “because it’s cool and everyone is talking about it.”. After choosing we will use it in-depth and explore all the benefits of this tool. Precisely because many problems have already been solved there, problems we shouldn’t get involved with.

Modern tools for Java applications must be safe, continue to evolve with Java, and be ready for the cloud era.

What Makes Quarkus Different

I hope to summarize for you why Quarkus is one of the best options on the market for creating your Java applications. Introducing below its characteristics and why they are important.

Developer Joy: Because it is a fantastic tool to work with, helping the developer in small and big pains of the day.

Kubernetes-native: Enabled to create native images for the most used container orchestrator today.

Best of Breed Libraries and Standards: It offers integration with the best libraries with minimal configuration.

Imperative and reactive code: No matter your programming paradigm, you can use Quarkus.

About Quarkus

Container First

The central idea behind Quarkus is to do at build-time what traditional frameworks do at runtime: configuration parsing, classpath scanning, feature toggle based on classloading, and so on.

— quarkus.io

Quarkus was designed and created to be a container-first platform. It’s one of its most striking features, which actually means creating applications for low memory usage and fast startup time.
For this to be possible, some strategies are taken, such as processing as many things as possible at build time, not at runtime.

Initializing as many extensions as possible while building the native image also results in a quick start.

The use of Reflection is also reduced to a minimum. Arc, the dependency injection framework used by Quarkus, is responsible for identifying the use of reflection and replacing it with regular calls.

Kubernetes Native

The combination of Quarkus and Kubernetes provides an ideal environment for creating scalable, fast, and lightweight applications. Quarkus significantly increases developer productivity with tooling, pre-built integrations, application services, and more.

— quarkus.io

You can get your application running on Kubernetes quickly because there are a lot of extensions on Quarkus. Extensions that will make the orchestration of your application possible with tracing, debugging, health checks, metrics, and configurations.
See the guide for more details.

GraalVM

Build faster, smaller, leaner applications.

graalvm.org

GraalVM support is an essential part of Quarkus. With this, it is possible to build your application faster and smaller, with only what is necessary.
This considerably impacts the startup of your application, which becomes faster than in the traditional JVM. For the context of container and microservices, this is fantastic!!!
Quarkus has first-class support for GraalVM native images, and that’s one of the differentiators that has guided its road map so far.

Reactive

Quarkus is designed to seamlessly combine the familiar imperative style code and the non-blocking, reactive style when developing applications.

— quarkus.io

So no matter what your programming paradigm is, it’s possible to write reactive or imperative code, both will respond in a non-blocking way.
This makes the applications have a continuous flow. This is very important nowadays with modern software using architectures like microservices, reactive applications, event-driven architecture, and serverless.

Developer Joy

Beyond simply working, we’re aiming for Joy.

— quarkus.io

Quarkus is more than a framework, it's a development platform, and one of its goals is to make the developer experience the best possible. This means that every feature is done to work well, simply, with little or no configuration, and as intuitively as possible.

Using Quarkus on your projects, your teams can enjoy features like:

Live Coding: Change the code and test, a developer experience without build time and deploy time.

Unified Config: The configuration is in one place.

Dev UI: The developers are able to configure extensions, monitor the application, and test components.

Dev Services: Quarkus may support the automatic configuration of some services for development and testing purposes. Examples: Kafka, MongoDB, Neo4j, etc…

Command Line Interface (CLI): Using the command line it's possible to create projects, manage extensions and build applications.

Continuous Testing: Similar to Live Coding, change the code and get instant feedback from tests run.

Remote Development: Run local changes in a container environment remotely with dev mode.

Important links to read more and stay on top of Quarkus news

Get started: https://quarkus.io/get-started/

Standards: https://quarkus.io/standards/

Roadmap: https://github.com/orgs/quarkusio/projects/13/views/1

Quarkus Newsletter: https://quarkus.io/newsletter/32/

Blog: https://quarkus.io/blog/

Discussion: https://quarkus.io/discussion/

If you have any questions or want to know more, I am at your disposal.

You can connect with me on LinkedIn or Twitter

--

--