Bringing Reactive to Enterprise Java Developers

50a17cd98aab2cc4d8e144741e11b1b7?s=47 Julien Ponge
February 14, 2019

Bringing Reactive to Enterprise Java Developers

50a17cd98aab2cc4d8e144741e11b1b7?s=128

Julien Ponge

February 14, 2019
Tweet

Transcript

  1. Bring Reactive to Enterprise Java Developers Julien Ponge, PhD Principal

    Software Engineer @jponge julien.ponge@redhat.com 1
  2. None
  3. Responsiveness MessageS Resilience Back-Pressure Streams System Manifesto Asynchrony Elasticity Data

    Flows Programming eXtensions Spreadsheets Events RX Java Reactor Spring Actor Fibers Non-Blocking MicroProfile REACTIVE ALL THE THING! 3
  4. 4 REACTIVE SOFTWARE - A DEFINITION reactive | rēˈaktiv |

    adjective showing a response to a stimulus: pupils are reactive to light. • acting in response to a situation rather than creating or controlling it: a proactive rather than a reactive approach. • having a tendency to react chemically: nitrogen dioxide is a highly reactive gas. • Software - code reacting to stimuli such as user inputs, messages and failures
  5. 5 REACTIVE SOFTWARE - A DEFINITION reactive | rēˈaktiv |

    adjective showing a response to a stimulus: pupils are reactive to light. • acting in response to a situation rather than creating or controlling it: a proactive rather than a reactive approach. • having a tendency to react chemically: nitrogen dioxide is a highly reactive gas. • Software - code reacting to stimuli such as user inputs, messages and failures Remain responsive under all conditions: load + failures
  6. 6 ASYNCHRONOUS ALL THE THINGS! Events Messages Failures JVM Async

    toolkit Modern Distributed Systems
  7. 7

  8. -50% MICHELIN50 8

  9. VERT.X DEMO (data streaming) 9

  10. 10 GATE

  11. LET’S TALK “EE” 11 Eclipse MicroProfile Eclipse JakartaEE

  12. 12 FROM JAVA EE TO JAKARTA EE ‘14 Java EE

    8 ‘17 ‘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
  13. 13 JAVA EE - A FOOT IN THE PAST CRUD

    DATABASE DEVELOPMENT MODEL CDI JAX-RS EJB EXECUTION MODEL SERVLETS 1 THREAD PER REQUESTS TYPICAL USE CASE Cloud-friendLY REACTIVE
  14. 14 INTRODUCING REACTIVE TO EE Without breaking everything… Vert.x Ecosystem

    Reactive Streams Operators Reactive Messaging Concurrency
  15. 15 REACTIVE AT MICROPROFILE Reactive Streams Operators Add reactive to

    other specs (Rest client, Fault Tolerance…) REACTIVE MESSAGING Creates, Manipulates and consumes reactive streams return ReactiveStreams .of("h", "e", "l", "l", “a") .map(s -> s.toUpperCase()) .distinct() .build(); }
  16. CONNECTED RABBIT DEMO * no rabbits were harmed in the

    making of this.
  17. 17 RestEasy, server-sent events and reactive streams STEP #1 Server

  18. 18 MicroProfile Reactive Messaging STEP #2 Server State HEALTH HEARTBEAT

  19. 19 MicroProfile Reactive Streams Operators STEP #3 Server State HEALTH

    HEARTBEAT SNAPSHOT SERVICE HTTP HTTP
  20. 20 Introducing connectors STEP #4 Server State HEALTH HEARTBEAT SNAPSHOT

    SERVICE HTTP HTTP MQTT
  21. PROCESSING LEAPS 21 Event-Driven Microservices STEP #5 State HEALTH HEARTBEAT

    SNAPSHOT SERVICE HTTP HTTP MQTT GATEWAY KAFKA SSE TEmperature
  22. 22

  23. -50% MICHELIN50 23

  24. plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Q&A 24