Reactive Programming Model - keshavbaweja-git/guides GitHub Wiki

Essence of Reactive Programming Model

  • Non blocking applications
  • Event driven
  • Asynchronous
  • Use lesser number of threads for scaling
  • Backpressure (slow consumer can have back pressure applied to a fast producer)

Reactive Streams

A standard and specification for Stream oriented libraries for JVM supporting Reactive programming model -

  • Process an unbounded stream of events/data elements
  • In sequence
  • Asynchronously
  • With mandatory non blocking back pressure

Reactive Streams API

  • Publisher
  • Subscriber
  • Subscription
  • Processor

Reactor

A implementation of Reactive Streams

Publishers

  • Hot
  • Cold

Container runtimes

  • Servlet 3.1 specification supports Reactive programming model
  • Netty (non Servlet container)
  • Undertow (non Servlet container)