Skip to content

#Flamewars. X is better than Y! Or is it? --> { def X = "Java EE"; def Y = "Spring"; }

License

Notifications You must be signed in to change notification settings

lreimer/flamewars-javaee-spring

Repository files navigation

#Flamewars. X is better than Y! Or is it?

Disputes among computer scientists are probably as old as the computer itself. Who actually invented the computer? Konrad Zuse, Thomas Flowers or was it the Swiss? And what was the best editor again? VIM or Emacs? Admittedly, a good #Flamewar and the daily technology rant in the coffee kitchen among colleagues are fun and exhilarating. The discussions always have a true core, but are often not conducted fairly: the advantages of one are compared to the disadvantages of the other without throwing their advantages into the balance.

{ def X = "Java EE"; def Y = "Spring"; }

In this edition of #Flamewars. X is better than Y! we are devoting ourselves to an epic dispute within the enterprise developer community, which has been fierce for almost 20 years now: Java EE vs. Spring.

The Contenders

  • Helidon
  • KumuluzEE
  • Open Liberty
  • Apache Meecrowave
  • Payara Micro
  • Quarkus
  • Spring Boot
  • Thorntail
  • Apache TomEE

Load Testing

We will use K6 to perform some simple load testing of all the contenders. First, you need to fire up InfluxDB and Grafana for metrics visualization.

# start the Influx DB and Grafana container
$ docker-compose up -d influxdb grafana

$ open http://localhost:3000
echo "Import the Grafana dashboard https://grafana.com/dashboards/2587"

$ k6 run -u 50 -d 60s helidon-weather-mp/src/test/k6/helidon-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s kumuluzee-weather/src/test/k6/kumuluzee-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s liberty-weather/src/test/k6/liberty-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s meecrowave-weather/src/test/k6/meecrowave-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s payara-weather-jar/src/test/k6/payara-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s payara-weather-war/src/test/k6/payara-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s quarkus-weather-jar/src/test/k6/quarkus-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s quarkus-weather-war/src/test/k6/quarkus-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s spring-weather-jar/src/test/k6/spring-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s spring-weather-war/src/test/k6/spring-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s thorntail-weather/src/test/k6/thorntail-weather.js -o influxdb=http://localhost:8086/k6

$ k6 run -u 50 -d 60s tomee-weather/src/test/k6/tomee-weather.js -o influxdb=http://localhost:8086/k6

Maintainer

M.-Leander Reimer (@lreimer), mario-leander.reimer@qaware.de

License

This software is provided under the MIT open source license, read the LICENSE file for details.