HTTP REST API's in Kotlin?

We use TomEE 7 (Tomcat + Java EE 7) for all of our REST APIs.

I find JAX-RS a great REST framework, in addition to using a few other parts of Java EE (CDI, JAX-B, BeanVal, etc).

We started using the (little known?) AsyncResponse feature of JAX-RS to go “reactive”, in combination with Akka.

Our stack now looks like below. I realize it’s way more than you asked in your question, but I guess to give a full picture…

  • Kotlin (1.1.0-rc-91)
  • TomEE 7 (7.0.2), which uses johnzon under the covers for JSON marshalling
  • Akka 2.12
  • ElasticSearch
  • HazelCast
  • DB2/PostgreSQL 9.4 for RDBM, and looking into ScyllaDB for NoSQL (c* drop-in)
  • kaconf (kick-ass config)
  • tinylog
  • orika mapper (DAL/DTO to API models)
  • ZooKeeper + Kafka
  • Docker Engine Swarm 1.13 (as of ~2 weeks ago, heading to production in ~2-4 more)
  • Kubernetes as our final state for Docker orchestration (Swarm is too bleeding edge)
  • nginx for all things routing, proxying
  • Investigating Mashape Kong for API gateway (we use openresty with some lua modules for http signature auth, so good fit)
  • Jenkins currently, Concourse being stood up for Docker build+deploy