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

Eclipse Vert.x at BruJUG 2019

Eclipse Vert.x at BruJUG 2019

Julien Ponge

June 19, 2019
Tweet

More Decks by Julien Ponge

Other Decks in Programming

Transcript

  1. Julien Ponge
    @jponge
    Principal Software Engineer, PhD

    View Slide

  2. Reactive?
    (because resources are scarce)

    View Slide

  3. View Slide

  4. Application

    View Slide

  5. Reactive
    systems
    Reactive
    streams
    Reactive
    programming
    Reactive
    “Responding to stimuli”
    Manifesto, Actor, Messages
    Resilience, Elasticity, Scalability,
    Asynchronous, non-blocking
    Data flow
    Back-pressure
    Non-blocking
    Data flow
    Events, Observable
    Spreadsheets
    Akka, Vert.x Akka Streams, RxJava,
    Reactor, Vert.x
    Reactor, Reactive Spring,
    RxJava, Vert.x

    View Slide

  6. while (isRunning) {
    String line = bufferedReader.readLine();
    switch (line.substring(0, 4)) {
    case "ECHO":
    bufferedWriter.write(line);
    break
    // ...
    // other cases ( ...)
    // ...
    default:
    bufferedWriter.write("UNKW Unknown command");
    }
    }

    View Slide

  7. x 1000 =

    View Slide


  8. Virtual machines,
    Containers, etc

    View Slide

  9. View Slide

  10. (demo)

    View Slide

  11. Vert.x?
    (async all the things!)

    View Slide

  12. mtpvertx
    40%
    (all Manning)

    View Slide

  13. Eclipse Vert.x
    Open source project started in 2012
    Eclipse / Apache licensing
    A toolkit for building reactive applications for the JVM
    ~10k ⋆ on
    Built on top of
    https://vertx.io
    @vertx_project

    View Slide

  14. Http server verticle Database client verticle

    Event Bus
    “Details for user 1234?”
    “{data}”
    4 instances
    1 instance

    View Slide

  15. Events
    Thread
    Event Loop

    View Slide

  16. Callbacks RxJava 1 + 2
    Quasar (vertx-sync)
    Kotlin coroutines
    (core)
    (codegen)
    CompletionStage

    View Slide

  17. View Slide

  18. (demo time)
    APIs with Mongo
    Edge service with RxJava2
    Event streaming with Kafka + web
    “Connected tires / IoT”

    View Slide

  19. Outro

    View Slide

  20. Unified end-to-end reactive model + ecosystem
    (not just APIs…)
    For all kinds of distributed applications
    (even the small-scale ones)
    Flexible toolkit, not a framework
    (your needs, your call)

    View Slide


  21. Asynchronous programming

    View Slide


  22. Single threaded event processors
    vs multi-threaded components

    View Slide

  23. Do you really need these
    anaemic POJOs / DTOs?

    View Slide


  24. Not everything has
    to be annotations!

    View Slide

  25. Powered by and more!

    View Slide

  26. mtpvertx
    40%
    (all Manning)

    View Slide