A work in progress comparison of web frameworks for Kotlin & Go microservices.
The intent of this project is to provide a relative comparison of the performance of basic microservices built using different technologies. It is meant to be an expanded take on Practical Performance Comparison of Spring Boot, Micronaut 1.3, Micronaut 2.0
- The initial goal of the project is to support a generic GET endpoint that returns random data generated by Faker.
- Expand to support CRUD operations backed by a Postgres datastore. The goal will be to compare performance of a more realistic service, as well as sense of how Spring Data JPA, Spring Boot with jOOQ, Micronaut Data JPA, and several other webframeworks using Exposed ORM stack up in a relative sense. This could be expanded to include other ORM/persistence frameworks.
- Spring Boot 2.x
- Micronaut 2.x
- Quarkus
- Ktor
- http4k
- Kooby/Jooby for Kotlin
- Javalin
Longer term thoughts for additions.
- Jetty vs Netty vs Tomcat vs ?
- JVM comparisons (AdoptOpenJDK, Corretto, GraalVM, etc)
- Jackson vs. GSON vs. kotlinx.serialization vs ?
- Dependency Injection alternatives
- other languages? (Rust, etc)
- nav to the root of the preferred project
- follow each build & run instructions as outlined in the project's README.md
- in another terminal tab or window, nav to the
load-tests
- start the simulation:
./gradlew gatlingRun --rerun-tasks
. See project readme for additional options.
Practical Performance Comparison of Spring Boot, Micronaut 1.3, Micronaut 2.0
Micronaut Comparisons source on GitHub