# JAX-RS compliant kernels test

## Round I

Run tests with 100 connections. These modules performed as shit:

- jersey-jdk-http
- jersey-simple-http
- resteasy-jdk-http

rawnetty is not that representative afterall - no need to loose time. openjdk-11 with alpine kernel failed to start test (not sure 'bout it).

## Round II

bad throughput

- jersey-jetty

bad mean and diviations is too high

- cxf-jetty
- cxf-undertow

diviation is too high

- jooby-jetty
- resteasy-netty

bad mean response time

- jersey-netty

bad compatibility (too many backfire incudents)

- quarkus-resteasy-jackson

bad mean response time and problems with compatibility

- jersey-grizzly2

## Round III

survivor jdks:

- eclipse-temurin:17-alpine
- amazoncorretto:11-alpine
- amazoncorretto:17-alpine

survivor modules:

- jooby-undertow
- resteasy-vertx

Best performance:

- resteasy-vertx + amazoncorretto:11-alpine
- jooby-undertow + eclipse-temurin:17-alpine

Best stability:

- resteasy-vertx + amazoncorretto:17-alpine
- jooby-undertow + eclipse-temurin:17-alpine

## Round IV (finals)

Overall best JAX-RS kernel to utilize: resteasy with vert.x backend
Alternative kernel to look at if main failes: jooby with undertow backend

Best JDK for performance and stability: amazoncorretto:11-alpine
Best JDK for stability: amazoncorretto:17-alpine
Alternative in case of amazon collapse: eclipse-temurin:17-alpine

# Conclusion

Start new kernel based around JAX-RS methodologym, use Vert.X eco-system where possible. End-to-end test for jooby-undertow & resteasy-vertx with websockets and PostgreSQL needed. Also ORM layer need more tests.

## Build time (for reference only)

| Kernel                   | time    |
| ------------------------ | ------- |
| quarkus-resteasy-jackson | 1.463 s |
| quarkus-resteasy-jsonb   | 0.943 s |
| jersey-grizzly2          | 1.029 s |
| jersey-jdk-http          | 0.350 s |
| jersey-simple-http       | 0.370 s |
| jersey-jetty             | 0.465 s |
| jersey-netty             | 0.596 s |
| jersey-netty             | 0.596 s |
| jersey-netty             | 0.596 s |
| jersey-netty             | 0.596 s |
| rawnetty                 | 0.659 s |
| jooby-netty              | 0.497 s |
| jooby-jetty              | 0.360 s |
| jooby-undertow           | 0.410 s |
| resteasy-jdk-http        | 0.319 s |
| resteasy-netty           | 0.603 s |
| resteasy-reactor-netty   | 0.813 s |
| resteasy-vertx           | 0.648 s |
| resteasy-undertow        | 0.568 s |
| cxf-jetty                | 0.572 s |
| cxf-netty                | 0.618 s |
| cxf-undertow             | 0.691 s |
