A one stop project for examples of using the ReactiveStreams MongoDB driver with RxJava.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jaryl Chng 19c165d124 removed synchronicity checks 8 months ago
common removed synchronicity checks 8 months ago
common-jersey standardizations 8 months ago
common-resteasy added tomcat web server support 8 months ago
grizzly-jersey standardizations 8 months ago
netty-jersey standardizations 8 months ago
netty-resteasy added tomcat web server support 8 months ago
tomcat-jersey standardizations 8 months ago
tomcat-resteasy added tomcat web server support 8 months ago
undertow-resteasy added tomcat web server support 8 months ago
.gitignore fix #1 8 months ago
.gitlab-ci.yml specify artifact 8 months ago
README.md cleanup README.md 8 months ago
benchmark-wrk.sh specify artifact 8 months ago
pom.xml added tomcat web server support 8 months ago
stub.sh added netty-resteasy 8 months ago

README.md

JAX-RS MongoDB ReactiveStreams to RxJava Examples pipeline status

A one stop project for examples of using the ReactiveStreams MongoDB driver with RxJava.

Includes initializing with multiple embedded web servers for further reference and benchmarking

Note: runs embedded MongoDB on separate port 27018 by default, no need to install it.

Current Implementations Done

  • Jersey on Grizzly (grizzly-jersey)
  • Jersey on Netty (netty-jersey)
  • Jersey on Tomcat (tomcat-jersey)
  • RestEasy on Undertow (undertow-resteasy)
  • RestEasy on Netty (netty-resteasy)
  • RestEasy on Tomcat (tomcat-resteasy)

Resource references

Guide

1. Running implementations

Packaging

$ maven package

Running

$ java -jar (implementation)/target/(implementation).jar
$ java -jar grizzly-jersey/target/undertow-resteasy.jar

2. Endpoints

METHOD ENDPOINT DESCRIPTION
GET /async/{userID} Get user from database
GET /async/{userID}/{name}/{phoneNumber} Create user
GET /sync/{userID} Get user from database (synced)
GET /sync/{userID}/{name}/{phoneNumber} Create user (synced)

3. Benchmark

Use your tool of choice like wrk or JMeter

$ wrk -t12 -c400 -d30s http://127.0.0.1:8080/user/jaryl/Jaryl%20Chng/01189998819991197253