Alternatives to Quarkus logo

Alternatives to Quarkus

Spring Boot, Spring, Kubernetes, Micronaut Framework, and Knative are the most popular alternatives and competitors to Quarkus.
290
366
+ 1
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.3K
23K
1K
Create Spring-powered, production-grade applications and services with absolute minimum fuss
25.3K
23K
+ 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 · | 18 upvotes · 3.8M 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

3.9K
4.7K
1.1K
Provides a comprehensive programming and configuration model for modern Java-based enterprise applications
3.9K
4.7K
+ 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

58.6K
50.6K
677
Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops
58.6K
50.6K
+ 1
677
PROS OF KUBERNETES
  • 164
    Leading docker container management solution
  • 128
    Simple and powerful
  • 106
    Open source
  • 76
    Backed by google
  • 58
    The right abstractions
  • 25
    Scale services
  • 20
    Replication controller
  • 11
    Permission managment
  • 9
    Supports autoscaling
  • 8
    Cheap
  • 8
    Simple
  • 6
    Self-healing
  • 5
    No cloud platform lock-in
  • 5
    Promotes modern/good infrascture practice
  • 5
    Open, powerful, stable
  • 5
    Reliable
  • 4
    Scalable
  • 4
    Quick cloud setup
  • 3
    Cloud Agnostic
  • 3
    Captain of Container Ship
  • 3
    A self healing environment with rich metadata
  • 3
    Runs on azure
  • 3
    Backed by Red Hat
  • 3
    Custom and extensibility
  • 2
    Sfg
  • 2
    Gke
  • 2
    Everything of CaaS
  • 2
    Golang
  • 2
    Easy setup
  • 2
    Expandable
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 · 9.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
Ashish Singh
Tech Lead, Big Data Platform at Pinterest · | 38 upvotes · 2.9M views

To provide employees with the critical need of interactive querying, we’ve worked with Presto, an open-source distributed SQL query engine, over the years. Operating Presto at Pinterest’s scale has involved resolving quite a few challenges like, supporting deeply nested and huge thrift schemas, slow/ bad worker detection and remediation, auto-scaling cluster, graceful cluster shutdown and impersonation support for ldap authenticator.

Our infrastructure is built on top of Amazon EC2 and we leverage Amazon S3 for storing our data. This separates compute and storage layers, and allows multiple compute clusters to share the S3 data.

We have hundreds of petabytes of data and tens of thousands of Apache Hive tables. Our Presto clusters are comprised of a fleet of 450 r4.8xl EC2 instances. Presto clusters together have over 100 TBs of memory and 14K vcpu cores. Within Pinterest, we have close to more than 1,000 monthly active users (out of total 1,600+ Pinterest employees) using Presto, who run about 400K queries on these clusters per month.

Each query submitted to Presto cluster is logged to a Kafka topic via Singer. Singer is a logging agent built at Pinterest and we talked about it in a previous post. Each query is logged when it is submitted and when it finishes. When a Presto cluster crashes, we will have query submitted events without corresponding query finished events. These events enable us to capture the effect of cluster crashes over time.

Each Presto cluster at Pinterest has workers on a mix of dedicated AWS EC2 instances and Kubernetes pods. Kubernetes platform provides us with the capability to add and remove workers from a Presto cluster very quickly. The best-case latency on bringing up a new worker on Kubernetes is less than a minute. However, when the Kubernetes cluster itself is out of resources and needs to scale up, it can take up to ten minutes. Some other advantages of deploying on Kubernetes platform is that our Presto deployment becomes agnostic of cloud vendor, instance types, OS, etc.

#BigData #AWS #DataScience #DataEngineering

See more
Micronaut Framework logo

Micronaut Framework

179
325
52
A JVM-based full-stack framework
179
325
+ 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

82
336
21
Kubernetes-based platform for serverless workloads
82
336
+ 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

    132.2K
    100K
    3.7K
    A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible
    132.2K
    100K
    + 1
    3.7K
    PROS OF JAVA
    • 599
      Great libraries
    • 445
      Widely used
    • 400
      Excellent tooling
    • 395
      Huge amount of documentation available
    • 334
      Large pool of developers available
    • 208
      Open source
    • 202
      Excellent performance
    • 157
      Great development
    • 150
      Used for android
    • 148
      Vast array of 3rd party libraries
    • 60
      Compiled Language
    • 52
      Used for Web
    • 46
      High Performance
    • 46
      Managed memory
    • 44
      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
      Universal platform
    • 20
      Good amount of APIs
    • 18
      Great Support
    • 14
      Great ecosystem
    • 11
      Backward compatible
    • 11
      Lots of boilerplate
    • 10
      Everywhere
    • 9
      Excellent SDK - JDK
    • 7
      It's Java
    • 7
      Cross-platform
    • 7
      Static typing
    • 6
      Mature language thus stable systems
    • 6
      Better than Ruby
    • 6
      Long term language
    • 6
      Portability
    • 5
      Clojure
    • 5
      Vast Collections Library
    • 5
      Used for Android development
    • 4
      Most developers favorite
    • 4
      Old tech
    • 3
      History
    • 3
      Great Structure
    • 3
      Stable platform, which many new languages depend on
    • 3
      Javadoc
    • 3
      Testable
    • 3
      Best martial for design
    • 2
      Type Safe
    • 2
      Faster than python
    • 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 · 9.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 · 3.9M 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

        Łukasz Korecki
        CTO & Co-founder at EnjoyHQ · | 5 upvotes · 28.1K views
        Shared insights
        on
        ClojureClojureGraalVMGraalVM
        at

        We use Clojure because of simplicity, performance and great fit to our problem domain: processing a lot of structured data. Based on my experience so far, Clojure is my go-to language for most tasks, except for when a fast startup time and a low resource footprint is required - basically CLI tools. That's slowly starting to change thanks to native-image and GraalVM

        See more
        Joshua Dean Küpper
        CEO at Scrayos UG (haftungsbeschränkt) · | 4 upvotes · 256K views

        We use Quarkus with native compilation in GraalVM for our global REST-API "Charon", that can be used by every developer to request user, server and game-data (protected through OAuth2). Quarkus offers a reliable framework, library and stack for high-quality APIs and integrates Vert.x into its core.

        GraalVM pushes the performance boundaries even further with the ability to perform ahead-of-time native compilation so we can reach an incredible small memory-footprint and fast bootup-times that we need for our microservices architecture.

        See more
        Dropwizard logo

        Dropwizard

        310
        362
        182
        Java framework for developing ops-friendly, high-performance, RESTful web services
        310
        362
        + 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 · | 15 upvotes · 992.7K 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