Rethinking HTTP Apps on JVM with Ratpack

schedule Sep 11th 04:15 - 05:00 PM place Esquire

HTTP application programming model on JVM traditionally has been based on the thread per request model. However increasing scale and complexity of applications are forcing the developers to think in new directions. Ratpack is one of such efforts. Ratpack is a collection of libraries glued with Java 8 and makes use of Netty, Guava and Reactive Streams. Ratpack also provides a Groovy DSL, helping developers to use declarative style.

In this demo, I will explore the asynchronous programming model leveraged by Ratpack. Composition, immutability, laziness are the core techniques used in building an application, which in fact are the ideas from functional programming. Though Ratpack has a variety of features, my focus for this presentation is asynchronous, reactive and functional aspects of Ratpack.


Outline/Structure of the Demonstration

  1. Just enough background of Ratpack (Why this model?) - 5 min
  2. Develop a real world REST service using Ratpack covering the following aspects - 35 min
    1. Using Ratpack Groovy DSL
    2. Ratpack asynchronous execution model
    3. Composition, laziness and immutability at work
    4. Working with Reactive streams
  3. QA  - 5 min

Learning Outcome

  • A food for thought - Why Java developers need to consider another programming model for HTTP applications
  • How functional programming ideas lead to better applications
  • How one can use light-weight framework Ratpack for developing a web application/ micro service

Target Audience

Developers, Architects, Technologists

schedule Submitted 4 years ago

Public Feedback

comment Suggest improvements to the Speaker
  • Naresh Jain
    By Naresh Jain  ~  4 years ago
    reply Reply

    Hi Naresha, instead of a talk, can this be structured as a demo with a real world example?

    • Naresha K .
      By Naresha K .  ~  4 years ago
      reply Reply

      Thanks Naresh for the suggestion. I have updated the proposal.

      After a quick introduction, I will get into developing an app that would showcase the concepts that I intended to highlight.