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

Bringing Reactive to Enterprise Java Developers

Julien Ponge
February 14, 2019

Bringing Reactive to Enterprise Java Developers

Julien Ponge

February 14, 2019
Tweet

More Decks by Julien Ponge

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 7

  5. 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
  6. 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
  7. 14 INTRODUCING REACTIVE TO EE Without breaking everything… Vert.x Ecosystem

    Reactive Streams Operators Reactive Messaging Concurrency
  8. 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(); }
  9. PROCESSING LEAPS 21 Event-Driven Microservices STEP #5 State HEALTH HEARTBEAT

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