$30 off During Our Annual Pro Sale. View Details »

Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018

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. Bringing Reactive to
    Enterprise Java Developers
    Julien Ponge, Thomas Segismont and Clement Escoffier
    Red Hat

    View Slide

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

    View Slide

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

    View Slide

  4. Reactive Summit 2018
    4

    View Slide

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

    View Slide

  6. Times change quickly

    View Slide

  7. 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

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide

  11. 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

    View Slide

  12. Reactive and MicroProfile

    View Slide

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

    View Slide

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

    View Slide

  15. Reactive Summit 2018
    15
    Reactive Messaging (and data streaming)

    View Slide

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

    View Slide

  17. Reactive Summit 2018
    17
    Reactive Stream Operators
    Compose and
    transform

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. 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

    View Slide

  24. Before we wrap up...

    View Slide

  25. Reactive Summit 2018
    25

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

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

    View Slide

  29. Q&A
    @jponge @tsegismont @clementplop

    View Slide

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

    View Slide