enterprise java developers bringing reactive to · 2018-10-30 · enterprise java developers julien...

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

Upload: others

Post on 22-May-2020

36 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Bringing Reactive to Enterprise Java Developers

Julien Ponge, Thomas Segismont and Clement EscoffierRed Hat

Page 2: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20182

Hello!

We work on Eclipse Vert.x, a toolkit for writing asynchronous and reactive applications on the JVM

Page 3: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20183

(s a l p u )

50% off with mlponge code

Page 4: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20184

Page 5: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20185

Vert.x MicroProfile Jakarta EE

Introducing reactive to the EE world...without breaking everything!

Page 6: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Times change quickly

Page 7: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20187

‘14

Java EE 8

‘17

From Java EE to Jakarta EE

‘13

Java EE 7

‘07

JAX-RS

‘09

CDI(Java EE 6)

MicroservicesDocker

KubernetesReactivemanifesto

‘12

Vert.xNode.js

MVC 1.0

‘11

Kafka Serverless

Page 8: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20188

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

Page 9: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 20189

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

Page 10: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201810

Not cloud-friendly, not reactive

Most of the model is synchronous except● Asynchronous servlets● CDI events

Also:➔ No stream support➔ No back-pressure

Page 11: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201811

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

Page 12: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive and MicroProfile

Page 13: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201813

Traction from: Lightbend, Red Hat, Oracle, IBM

Reactive Microprofile specifications

Reactive Streams OperatorsReactive MessagingConcurrency

Page 14: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201814

JAX-RS and reactive

Stream data as SSE

Page 15: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201815

Reactive Messaging (and data streaming)

Page 16: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201816

Reactive Messaging (and data streaming)

Manuel, pre and post

processing

Page 17: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201817

Reactive Stream Operators

Compose and

transform

Page 18: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Demos*

* no rabbits were harmed in the making of this.

Page 19: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201819

Step #1RestEasy, server-sent events and reactive streams

Server

{sleeping, awake, eating}

Page 20: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201820

Step #2Introducing MicroProfile Reactive Messaging

HealthDataBean

(temperature, heartbeat, pressure)

Neo

(sleeping, awake, eating)

Processor

state

Health dataHeartbeat

Page 21: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201821

Step #3Introducing MicroProfile Reactive Streams Operators

HealthDataBean

(temperature, heartbeat, pressure)

Processor

Health data

Heartbeat

HTTP Client(Vert.x)

Snapshot service(latest data)

Health data

Health data1 2

Page 22: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201822

Step #4Health data comes from MQTT

Processor

Health data

Heartbeat

HTTP Client(Vert.x)

Snapshot service(latest data)

Health data

Health data1 2

MQTT

Page 23: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201823

Step #5Event-driven and asynchronous microservices

MQTT

Kafka

Collector service

Snapshot service

Web application

Health data

Events split by topic

SSE

HTTPEvents

Page 24: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Before we wrap up...

Page 25: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201825

Page 26: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201826

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

Page 27: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201827

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

Page 28: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Reactive Summit 201828

(s a l p u #2)

50% off with mlponge code

Page 29: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

Q&A

@jponge @tsegismont @clementplop

Page 30: Enterprise Java Developers Bringing Reactive to · 2018-10-30 · Enterprise Java Developers Julien Ponge, Thomas Segismont and Clement Escoffier Red Hat. 2 Reactive Summit 2018 Hello!

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat