Slide 1

Slide 1 text

Julien Ponge @jponge Principal Software Engineer, PhD

Slide 2

Slide 2 text

Reactive? (because resources are scarce)

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Application

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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"); } }

Slide 7

Slide 7 text

x 1000 =

Slide 8

Slide 8 text

Virtual machines, Containers, etc

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

(demo)

Slide 11

Slide 11 text

Vert.x? (async all the things!)

Slide 12

Slide 12 text

mtpvertx 40% (all Manning)

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Http server verticle Database client verticle  Event Bus “Details for user 1234?” “{data}” 4 instances 1 instance

Slide 15

Slide 15 text

Events Thread Event Loop

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Outro

Slide 20

Slide 20 text

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)

Slide 21

Slide 21 text

Asynchronous programming

Slide 22

Slide 22 text

Single threaded event processors vs multi-threaded components

Slide 23

Slide 23 text

Do you really need these anaemic POJOs / DTOs?

Slide 24

Slide 24 text

Not everything has to be annotations!

Slide 25

Slide 25 text

Powered by and more!

Slide 26

Slide 26 text

mtpvertx 40% (all Manning)