Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add benchmark for serverless Java (Quarkus ?) #264

Open
ceresek opened this issue Jun 8, 2021 · 1 comment
Open

Add benchmark for serverless Java (Quarkus ?) #264

ceresek opened this issue Jun 8, 2021 · 1 comment
Labels
benchmark-candidate Potential benchmark to be added

Comments

@ceresek
Copy link
Collaborator

ceresek commented Jun 8, 2021

We should consider adding a workload that represents reactive serverless Java environments, such as Quarkus and friends. Some bits of thought:

  • At the core a REST service workload, so an artificial client that pushes requests, and a server that handles them ?
  • Reactive event handling model with Mutiny (https://quarkus.io/guides/getting-started-reactive) ?
  • Any complex event driven processing in Vert.x style ? If so, what ?
  • Maybe request scoped dependency injection ?

A real application would also include ORM, or connect to an outside event stream, but with Quarkus the ORM layer can only be reactive with DB2, MySQL and PostgreSQL (https://quarkus.io/guides/reactive-sql-clients), which would make deployment complicated.

For inspiration, there is a guide on measuring Quarkus performance, but probably not relevant to us since it looks at startup time and memory mostly, https://quarkus.io/guides/performance-measure. Then there is a blog post, https://quarkus.io/blog/runtime-performance, which uses a very simple REST application, https://github.com/johnaohara/quarkusRestCrudDemo, which essentially does a blocking ORM access so we would need to have a database backend too (there is also an async version in the same repo but I think the choice of database backends is even more restricted then). Other people did a test article at https://micronaut.io/2020/04/07/micronaut-vs-quarkus-vs-spring-boot-performance-on-jdk-14, with code at https://github.com/graemerocher/framework-comparison-2020, this is even more simple with one singleton service, but notable is how they care about time to first response again.

@ceresek ceresek added the benchmark-candidate Potential benchmark to be added label Jun 8, 2021
@farquet
Copy link
Collaborator

farquet commented Dec 17, 2021

Alternatively or in addition to Quarkus, we could investigate Micronaut. There seems to be a benchmark which could be reused in the TechEmpower benchmarks here: https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Java/micronaut

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmark-candidate Potential benchmark to be added
Projects
None yet
Development

No branches or pull requests

2 participants