Alternatives to Quarkus logo

Alternatives to Quarkus

Spring Boot, Spring, Kubernetes, Micronaut Framework, and Knative are the most popular alternatives and competitors to Quarkus.
307
79

What is Quarkus and what are its top alternatives?

Quarkus is a Kubernetes Native Java stack crafted for OpenJDK HotSpot and GraalVM, providing fast boot times, low memory usage, and easy scaling. Its key features include support for reactive programming, microservices architecture, and a developer-friendly ecosystem with extensions for common frameworks like Hibernate and Spring. However, Quarkus does have limitations when it comes to compatibility with certain Java APIs and libraries.

  1. Micronaut: Micronaut is a modern, JVM-based, full-stack framework designed for building microservice and serverless applications. Key features include minimal memory usage, fast startup times, and support for GraalVM native images. Compared to Quarkus, Micronaut has a different programming model and may require a learning curve for developers.

  2. Spring Boot: Spring Boot is a popular Java framework for creating stand-alone, production-grade Spring-based applications. It offers a wide range of features such as dependency injection, auto-configuration, and powerful monitoring tools. Compared to Quarkus, Spring Boot has a larger ecosystem and community support, but may not achieve the same level of performance optimization.

  3. Helidon: Helidon is a collection of Java libraries for writing microservices designed to run on a variety of runtimes like GraalVM. It provides a reactive programming model, support for cloud-native features, and integration with popular frameworks like Eclipse MicroProfile. Compared to Quarkus, Helidon has a more lightweight architecture but may not offer as many extensions for common frameworks.

  4. Dropwizard: Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services. It includes powerful metrics, request logging, and health checks to monitor application performance. Compared to Quarkus, Dropwizard is more focused on traditional web applications and may not provide the same level of support for cloud-native features.

  5. Vert.x: Vert.x is a toolkit for building reactive applications on the JVM that are scalable, resilient, and responsive. It supports event-driven programming, asynchronous communication, and high concurrency. Compared to Quarkus, Vert.x offers a more lightweight runtime and is well-suited for high-performance, non-blocking applications.

  6. Eclipse MicroProfile: Eclipse MicroProfile is a set of specifications for building microservices architecture with enterprise Java. It includes APIs for fault tolerance, health checks, and metrics monitoring. Compared to Quarkus, MicroProfile provides a standardized approach to developing cloud-native applications but may require integrating with additional frameworks for a full-stack solution.

  7. Grizzly: Grizzly is a Java NIO framework that helps developers build scalable and efficient network applications. It offers features like non-blocking I/O, HTTP server support, and WebSocket capabilities. Compared to Quarkus, Grizzly is more focused on networking and may not provide as much support for full-stack development.

  8. Ratpack: Ratpack is a set of Java libraries for building modern web applications with asynchronous and reactive programming paradigms. It provides a flexible, composable model for defining HTTP endpoints and handling requests. Compared to Quarkus, Ratpack emphasizes simplicity and performance but may require more manual configuration.

  9. Apache Camel: Apache Camel is an open-source integration framework for connecting different systems by defining routing and mediation rules. It offers a wide range of components for integrating with various protocols, APIs, and data formats. Compared to Quarkus, Apache Camel is more focused on integration patterns and may not provide the same level of support for building standalone microservices.

  10. Micronative: Micronative is a new player in the market that leverages GraalVM to build lightweight, standalone Java applications optimized for cloud-native environments. It offers features like modular extensions, observability tools, and automatic dependency resolution. Compared to Quarkus, Micronative aims to simplify the development of microservices and optimize resource usage for efficient scaling.

Top Alternatives to Quarkus

  • Spring Boot
    Spring Boot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...

  • Spring
    Spring

    A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. ...

  • Kubernetes
    Kubernetes

    Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions. ...

  • Micronaut Framework
    Micronaut Framework

    It is a modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications. It features a Dependency Injection and Aspect-Oriented Programming runtime that uses no reflection. ...

  • Knative
    Knative

    Knative provides a set of middleware components that are essential to build modern, source-centric, and container-based applications that can run anywhere: on premises, in the cloud, or even in a third-party data center ...

  • Java
    Java

    Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere! ...

  • GraalVM
    GraalVM

    An ecosystem and shared runtime offering performance advantages not only to JVM-based languages such as Java, Scala, Groovy, and Kotlin, but also to programming languages as JavaScript, Ruby, Python, and R. Additionally, it enables the execution of native code on the JVM via LLVM front-end. ...

  • Dropwizard
    Dropwizard

    Dropwizard is a sneaky way of making fast Java web applications. Dropwizard pulls together stable, mature libraries from the Java ecosystem into a simple, light-weight package that lets you focus on getting things done. ...

Quarkus alternatives & related posts

Spring Boot logo

Spring Boot

25.9K
23.5K
1K
Create Spring-powered, production-grade applications and services with absolute minimum fuss
25.9K
23.5K
+ 1
1K
PROS OF SPRING BOOT
  • 149
    Powerful and handy
  • 134
    Easy setup
  • 128
    Java
  • 90
    Spring
  • 85
    Fast
  • 46
    Extensible
  • 37
    Lots of "off the shelf" functionalities
  • 32
    Cloud Solid
  • 26
    Caches well
  • 24
    Productive
  • 24
    Many receipes around for obscure features
  • 23
    Modular
  • 23
    Integrations with most other Java frameworks
  • 22
    Spring ecosystem is great
  • 21
    Auto-configuration
  • 21
    Fast Performance With Microservices
  • 18
    Community
  • 17
    Easy setup, Community Support, Solid for ERP apps
  • 15
    One-stop shop
  • 14
    Easy to parallelize
  • 14
    Cross-platform
  • 13
    Easy setup, good for build erp systems, well documented
  • 13
    Powerful 3rd party libraries and frameworks
  • 12
    Easy setup, Git Integration
  • 5
    It's so easier to start a project on spring
  • 4
    Kotlin
  • 1
    Microservice and Reactive Programming
  • 1
    The ability to integrate with the open source ecosystem
CONS OF SPRING BOOT
  • 23
    Heavy weight
  • 18
    Annotation ceremony
  • 13
    Java
  • 11
    Many config files needed
  • 5
    Reactive
  • 4
    Excellent tools for cloud hosting, since 5.x
  • 1
    Java 😒😒

related Spring Boot posts

Praveen Mooli
Engineering Manager at Taylor and Francis · | 19 upvotes · 4M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more
Spring logo

Spring

4K
4.8K
1.1K
Provides a comprehensive programming and configuration model for modern Java-based enterprise applications
4K
4.8K
+ 1
1.1K
PROS OF SPRING
  • 230
    Java
  • 157
    Open source
  • 136
    Great community
  • 123
    Very powerful
  • 114
    Enterprise
  • 64
    Lot of great subprojects
  • 60
    Easy setup
  • 44
    Convention , configuration, done
  • 40
    Standard
  • 31
    Love the logic
  • 13
    Good documentation
  • 11
    Dependency injection
  • 11
    Stability
  • 9
    MVC
  • 6
    Easy
  • 3
    Makes the hard stuff fun & the easy stuff automatic
  • 3
    Strong typing
  • 2
    Code maintenance
  • 2
    Best practices
  • 2
    Maven
  • 2
    Great Desgin
  • 2
    Easy Integration with Spring Security
  • 2
    Integrations with most other Java frameworks
  • 1
    Java has more support and more libraries
  • 1
    Supports vast databases
  • 1
    Large ecosystem with seamless integration
  • 1
    OracleDb integration
  • 1
    Live project
CONS OF SPRING
  • 15
    Draws you into its own ecosystem and bloat
  • 3
    Verbose configuration
  • 3
    Poor documentation
  • 3
    Java
  • 2
    Java is more verbose language in compare to python

related Spring posts

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more

I am consulting for a company that wants to move its current CubeCart e-commerce site to another PHP based platform like PrestaShop or Magento. I was interested in alternatives that utilize Node.js as the primary platform. I currently don't know PHP, but I have done full stack dev with Java, Spring, Thymeleaf, etc.. I am just unsure that learning a set of technologies not commonly used makes sense. For example, in PrestaShop, I would need to work with JavaScript better and learn PHP, Twig, and Bootstrap. It seems more cumbersome than a Node JS system, where the language syntax stays the same for the full stack. I am looking for thoughts and advice on the relevance of PHP skillset into the future AND whether the Node based e-commerce open source options can compete with Magento or Prestashop.

See more
Kubernetes logo

Kubernetes

59.7K
51.7K
681
Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops
59.7K
51.7K
+ 1
681
PROS OF KUBERNETES
  • 166
    Leading docker container management solution
  • 129
    Simple and powerful
  • 107
    Open source
  • 76
    Backed by google
  • 58
    The right abstractions
  • 25
    Scale services
  • 20
    Replication controller
  • 11
    Permission managment
  • 9
    Supports autoscaling
  • 8
    Simple
  • 8
    Cheap
  • 6
    Self-healing
  • 5
    Open, powerful, stable
  • 5
    Reliable
  • 5
    No cloud platform lock-in
  • 5
    Promotes modern/good infrascture practice
  • 4
    Scalable
  • 4
    Quick cloud setup
  • 3
    Custom and extensibility
  • 3
    Captain of Container Ship
  • 3
    Cloud Agnostic
  • 3
    Backed by Red Hat
  • 3
    Runs on azure
  • 3
    A self healing environment with rich metadata
  • 2
    Everything of CaaS
  • 2
    Gke
  • 2
    Golang
  • 2
    Easy setup
  • 2
    Expandable
  • 2
    Sfg
CONS OF KUBERNETES
  • 16
    Steep learning curve
  • 15
    Poor workflow for development
  • 8
    Orchestrates only infrastructure
  • 4
    High resource requirements for on-prem clusters
  • 2
    Too heavy for simple systems
  • 1
    Additional vendor lock-in (Docker)
  • 1
    More moving parts to secure
  • 1
    Additional Technology Overhead

related Kubernetes posts

Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 12.6M views

How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

https://eng.uber.com/distributed-tracing/

(GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

See more
Yshay Yaacobi

Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

See more
Micronaut Framework logo

Micronaut Framework

184
327
52
A JVM-based full-stack framework
184
327
+ 1
52
PROS OF MICRONAUT FRAMEWORK
  • 12
    Compilable to machine code
  • 8
    Tiny memory footprint
  • 7
    Open source
  • 7
    Almost instantaneous startup
  • 6
    Tiny compiled code size
  • 4
    High Escalability
  • 2
    Minimal overhead
  • 2
    Hasn't Servlet API
  • 2
    Simplified reactive programming
  • 1
    Serverless support
  • 1
    Jakarta EE
CONS OF MICRONAUT FRAMEWORK
  • 3
    No hot reload

related Micronaut Framework posts

Knative logo

Knative

84
340
21
Kubernetes-based platform for serverless workloads
84
340
+ 1
21
PROS OF KNATIVE
  • 5
    Portability
  • 4
    Autoscaling
  • 3
    Open source
  • 3
    Eventing
  • 3
    Secure Eventing
  • 3
    On top of Kubernetes
CONS OF KNATIVE
    Be the first to leave a con

    related Knative posts

    Currently been using an older version of OpenFaaS, but the new version now requires payment for things we did on the older version. Been looking for alternatives to OpenFaas that have Kafka integrations, and scale to 0 capabilities.

    looked at Apache OpenWhisk, but we run on RKE2, and my initial install of Openwhisk appears to be too out of date to support RKE2 and missing images from docker.io. So now looking at Knative. What are your thoughts? We need support to be able to process functions about 10k a min, which can vary on time of execution, between ms and mins. So looking for horizontal scaling that can be controlled by other metrics, than just cpu and ram utilization, but more so, for example if the wait is over 5 scale out.. Issue with older openfaas, was scaling on RKE2 was not working great, for example, I could get it to scale from 5 to 20 pods, but only 12 of them would ever have data, but my backlog would have 100k's of files waiting.. So even though it scaled up, it was as if the distribution of work was only being married to specific pods. If I killed the pods that had no work, they come up again with no work, if I killed one with work, then another pod would scale up and another pod would start to get work. And On occasion with hours, it would reset down to the original deployment allotment of pods, and never scale up again, until I go into Kubernetes and tell it to add more pods.

    So hoping to find a solution that doesn't require as much triage, to work with scaling, as points in time we are at higher volume and other points of time could be no volume.

    See more
    Java logo

    Java

    134.9K
    102.2K
    3.7K
    A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible
    134.9K
    102.2K
    + 1
    3.7K
    PROS OF JAVA
    • 603
      Great libraries
    • 446
      Widely used
    • 401
      Excellent tooling
    • 396
      Huge amount of documentation available
    • 334
      Large pool of developers available
    • 208
      Open source
    • 203
      Excellent performance
    • 158
      Great development
    • 150
      Used for android
    • 148
      Vast array of 3rd party libraries
    • 60
      Compiled Language
    • 52
      Used for Web
    • 46
      Managed memory
    • 46
      High Performance
    • 45
      Native threads
    • 43
      Statically typed
    • 35
      Easy to read
    • 33
      Great Community
    • 29
      Reliable platform
    • 24
      Sturdy garbage collection
    • 24
      JVM compatibility
    • 22
      Cross Platform Enterprise Integration
    • 20
      Good amount of APIs
    • 20
      Universal platform
    • 18
      Great Support
    • 14
      Great ecosystem
    • 11
      Backward compatible
    • 11
      Lots of boilerplate
    • 10
      Everywhere
    • 9
      Excellent SDK - JDK
    • 7
      Cross-platform
    • 7
      It's Java
    • 7
      Static typing
    • 6
      Portability
    • 6
      Mature language thus stable systems
    • 6
      Better than Ruby
    • 6
      Long term language
    • 5
      Used for Android development
    • 5
      Clojure
    • 5
      Vast Collections Library
    • 4
      Best martial for design
    • 4
      Most developers favorite
    • 4
      Old tech
    • 3
      Testable
    • 3
      History
    • 3
      Javadoc
    • 3
      Stable platform, which many new languages depend on
    • 3
      Great Structure
    • 2
      Faster than python
    • 2
      Type Safe
    • 0
      Job
    CONS OF JAVA
    • 33
      Verbosity
    • 27
      NullpointerException
    • 17
      Nightmare to Write
    • 16
      Overcomplexity is praised in community culture
    • 12
      Boiler plate code
    • 8
      Classpath hell prior to Java 9
    • 6
      No REPL
    • 4
      No property
    • 3
      Code are too long
    • 2
      Non-intuitive generic implementation
    • 2
      There is not optional parameter
    • 2
      Floating-point errors
    • 1
      Java's too statically, stronglly, and strictly typed
    • 1
      Returning Wildcard Types
    • 1
      Terrbible compared to Python/Batch Perormence

    related Java posts

    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 44 upvotes · 12.6M views

    How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

    Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

    Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

    https://eng.uber.com/distributed-tracing/

    (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

    Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

    See more
    Kamil Kowalski
    Lead Architect at Fresha · | 28 upvotes · 4M views

    When you think about test automation, it’s crucial to make it everyone’s responsibility (not just QA Engineers'). We started with Selenium and Java, but with our platform revolving around Ruby, Elixir and JavaScript, QA Engineers were left alone to automate tests. Cypress was the answer, as we could switch to JS and simply involve more people from day one. There's a downside too, as it meant testing on Chrome only, but that was "good enough" for us + if really needed we can always cover some specific cases in a different way.

    See more
    GraalVM logo

    GraalVM

    68
    75
    0
    A universal virtual machine for running applications (by Oracle)
    68
    75
    + 1
    0
    PROS OF GRAALVM
      Be the first to leave a pro
      CONS OF GRAALVM
        Be the first to leave a con

        related GraalVM posts

        Dropwizard logo

        Dropwizard

        311
        364
        182
        Java framework for developing ops-friendly, high-performance, RESTful web services
        311
        364
        + 1
        182
        PROS OF DROPWIZARD
        • 27
          Quick and easy to get a new http service going
        • 23
          Health monitoring
        • 20
          Metrics integration
        • 20
          Easy setup
        • 18
          Good conventions
        • 14
          Good documentation
        • 14
          Lightweight
        • 13
          Java Powered
        • 10
          Good Testing frameworks
        • 7
          Java powered, lightweight
        • 5
          Simple
        • 4
          Scalable
        • 3
          Great performance, Good in prod
        • 2
          Open source
        • 2
          All in one-productive-production ready-makes life easy
        CONS OF DROPWIZARD
        • 2
          Slightly more confusing dependencies
        • 1
          Not on ThoughtWorks radar since 2014

        related Dropwizard posts

        Matt Menzenski
        Senior Software Engineering Manager at PayIt · | 16 upvotes · 1M views

        Grafana and Prometheus together, running on Kubernetes , is a powerful combination. These tools are cloud-native and offer a large community and easy integrations. At PayIt we're using exporting Java application metrics using a Dropwizard metrics exporter, and our Node.js services now use the prom-client npm library to serve metrics.

        See more
        Application & Data

        Java JavaScript Node.js nginx Ubuntu MongoDB Amazon EC2 Redis Amazon S3 AWS Lambda RabbitMQ Kafka MySQL Spring Boot Dropwizard Vue.js Flutter

        Utilities

        Google Analytics Elasticsearch Amazon Route 53

        DevOps

        GitHub Docker Webpack CircleCI Jenkins Travis CI Gradle Apache Maven

        Cooperation Tools

        Jira notion.so Trello

        See more