Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bringing Reactive to Enterprise Application Dev...

Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018

Julien Ponge

October 24, 2018
Tweet

More Decks by Julien Ponge

Other Decks in Programming

Transcript

  1. Reactive Summit 2018 2 Hello! We work on Eclipse Vert.x,

    a toolkit for writing asynchronous and reactive applications on the JVM
  2. Reactive Summit 2018 3 (s a l p u )

    50% off with mlponge code
  3. Reactive Summit 2018 5 Vert.x MicroProfile Jakarta EE Introducing reactive

    to the EE world ...without breaking everything!
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Reactive Summit 2018 13 Traction from: Lightbend, Red Hat, Oracle,

    IBM Reactive Microprofile specifications Reactive Streams Operators Reactive Messaging Concurrency
  10. Reactive Summit 2018 19 Step #1 RestEasy, server-sent events and

    reactive streams Server {sleeping, awake, eating}
  11. Reactive Summit 2018 20 Step #2 Introducing MicroProfile Reactive Messaging

    HealthDataBean (temperature, heartbeat, pressure) Neo (sleeping, awake, eating) Processor state Health data Heartbeat
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Reactive Summit 2018 28 (s a l p u #2)

    50% off with mlponge code