Slide 1

Slide 1 text

Bringing Reactive to Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat

Slide 2

Slide 2 text

Reactive Summit 2018 2 Hello! We work on Eclipse Vert.x, a toolkit for writing asynchronous and reactive applications on the JVM

Slide 3

Slide 3 text

Reactive Summit 2018 3 (s a l p u ) 50% off with mlponge code

Slide 4

Slide 4 text

Reactive Summit 2018 4

Slide 5

Slide 5 text

Reactive Summit 2018 5 Vert.x MicroProfile Jakarta EE Introducing reactive to the EE world ...without breaking everything!

Slide 6

Slide 6 text

Times change quickly

Slide 7

Slide 7 text

Reactive Summit 2018 7 ‘14 Java EE 8 ‘17 From Java EE to Jakarta EE ‘13 Java EE 7 ‘07 JAX-RS ‘09 CDI (Java EE 6) Microservices Docker Kubernetes Reactive manifesto ‘12 Vert.x Node.js MVC 1.0 ‘11 Kafka Serverless

Slide 8

Slide 8 text

Reactive Summit 2018 8 Typical use-case CRUD Database with ORM Development model CDI (injection) JAX-RS (REST API) JPA, Bean Validation, JTA, Management... Execution model Servlets 1 thread per request Java EE: a feet in the past

Slide 9

Slide 9 text

Reactive Summit 2018 9 Not cloud-friendly, not reactive Based on the concept of application server ➔ 1 server = many applications Does not fit the “cloud model” ➔ Small, lightweight applications ➔ Each service in its own process

Slide 10

Slide 10 text

Reactive Summit 2018 10 Not cloud-friendly, not reactive Most of the model is synchronous except ● Asynchronous servlets ● CDI events Also: ➔ No stream support ➔ No back-pressure

Slide 11

Slide 11 text

Reactive Summit 2018 11 A new hope? MicroProfile - the rogue child ➔ A new set of specs ➔ Microservice-friendly ➔ Very iterative ➔ Reactive working group! Jakarta EE ➔ New spec model ➔ Faster processes ➔ Growing interest for reactive

Slide 12

Slide 12 text

Reactive and MicroProfile

Slide 13

Slide 13 text

Reactive Summit 2018 13 Traction from: Lightbend, Red Hat, Oracle, IBM Reactive Microprofile specifications Reactive Streams Operators Reactive Messaging Concurrency

Slide 14

Slide 14 text

Reactive Summit 2018 14 JAX-RS and reactive Stream data as SSE

Slide 15

Slide 15 text

Reactive Summit 2018 15 Reactive Messaging (and data streaming)

Slide 16

Slide 16 text

Reactive Summit 2018 16 Reactive Messaging (and data streaming) Manuel, pre and post processing

Slide 17

Slide 17 text

Reactive Summit 2018 17 Reactive Stream Operators Compose and transform

Slide 18

Slide 18 text

Demos* * no rabbits were harmed in the making of this.

Slide 19

Slide 19 text

Reactive Summit 2018 19 Step #1 RestEasy, server-sent events and reactive streams Server {sleeping, awake, eating}

Slide 20

Slide 20 text

Reactive Summit 2018 20 Step #2 Introducing MicroProfile Reactive Messaging HealthDataBean (temperature, heartbeat, pressure) Neo (sleeping, awake, eating) Processor state Health data Heartbeat

Slide 21

Slide 21 text

Reactive Summit 2018 21 Step #3 Introducing MicroProfile Reactive Streams Operators HealthDataBean (temperature, heartbeat, pressure) Processor Health data Heartbeat HTTP Client (Vert.x) Snapshot service (latest data) Health data Health data 1 2

Slide 22

Slide 22 text

Reactive Summit 2018 22 Step #4 Health data comes from MQTT Processor Health data Heartbeat HTTP Client (Vert.x) Snapshot service (latest data) Health data Health data 1 2 MQTT

Slide 23

Slide 23 text

Reactive Summit 2018 23 Step #5 Event-driven and asynchronous microservices MQTT Kafka Collector service Snapshot service Web application Health data Events split by topic SSE HTTP Events

Slide 24

Slide 24 text

Before we wrap up...

Slide 25

Slide 25 text

Reactive Summit 2018 25

Slide 26

Slide 26 text

Reactive Summit 2018 26 JAX-RS Vert.x CDI (Weld) RestEasy Reactive Messaging Vert.x-powered MQTT Apache Kafka Apache Camel AMQP 1.0 Reactive Stream Ops Vert.x + RxJava2 SmallRye

Slide 27

Slide 27 text

Reactive Summit 2018 27 Roadmap ● MicroProfile Reactive Stream Operators ○ Approaching 1.0 ○ Starting to infuse in the other MicroProfile specifications ○ Integration in the next MicroProfile release (February 2019) ● MicroProfile Reactive Messaging ○ Data streaming and Event-driven microservice ○ Integration in the next MicroProfile release (February 2019) ● MicroProfile Concurrency ○ Async context propagation

Slide 28

Slide 28 text

Reactive Summit 2018 28 (s a l p u #2) 50% off with mlponge code

Slide 29

Slide 29 text

Q&A @jponge @tsegismont @clementplop

Slide 30

Slide 30 text

THANK YOU plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat