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

Vert.x 3 - high performance polyglot application platform

Vert.x 3 - high performance polyglot application platform

Vert.x is very efficient high performance scalable platform. Based on event driven paradigm with eventbus allows you to build non blocking thread safe asynchronous applications. Vert.x is easily scalable that can handle very high load of concurrent connections. Due to non blocking IO efficently uses server resources. It runs smoothly even on Raspberry Pi! That's awesome base for IoT solutions!

Another key feature of Vert.x is ability to use many programming languages in the same application. Vert.x supports Java, JavaScript, CoffeeScript, Ruby, Python, Groovy, Scala, Clojure and Ceylon. You can mix all of them in the same application using eventbus to communicate between pieces. Vert.x nicely handles concurrency so writing concurrent and yet thread safe code was never so easy. During the talk I'll show you live how to create simple and more advanced pieces of code. In 2014 Vert.x won Jax Innovation Award in Most innovative Java Technology category. Vertx 3.0 is on the way with it's premiere at 22 July 2015.

Bartek Zdanowski

June 26, 2015
Tweet

More Decks by Bartek Zdanowski

Other Decks in Programming

Transcript

  1. vert.x 5 Invented by Tim Fox as Node.x 24 June

    2015 - released v3 it’s very hot :D
  2. the problem number of mobile users raises 2,1 bln in

    2012 -> 7 bln in 2018 Internet of things - 30 bln in 2020! IPv4 is exhausted IPv6 is already ready for all of them 9
  3. the problem traditional blocking approach waiting for job to be

    done synchronous code scalability lots of threads concurrency that no-one understands ;) 10
  4. the problem Tomcat: 200 threads = 200 connections rest of

    incoming connections must wait… 11
  5. the problem one thread handles one task thread is waiting

    for job to finish whole queue of tasks waits traditional synchronous approach 12
  6. the solution 18 1 task = series of loosely coupled

    events event that informs that new job/data is waiting
  7. the solution 19 program should release thread instead of waiting

    for operation (I/O) to be finished use non-blocking IO (NIO)
  8. threadsafe only when one thread! 28 class MyService { public

    synchronized Result doSomething(Data data) { //do some critical stuff } }
  9. 30 basic deployment unit actor-like model (akka similarity) always run

    in the same thread can have many instances classloader isolated verticle
  10. verticle threadsafe code ▪ verticle instance - always the same

    thread ▪ separated classloaders for each verticle instance 31
  11. 43 lightweight vert.x core extensions ▪ web ▪ data access

    (mongoDB, redis, JDBC) ▪ security (basic auth, jdbc auth, jwt, shiro) ▪ reactive (based on RxJava) ▪ others vert.x ecosystem
  12. I’m not the owner of the pictures used. Just found

    them on: http://www.rantchic.com/wp-content/uploads/2013/12/Apollo-13.jpg http://www.gamesaktuell.de/screenshots/1280x1024/2009/04/terminator_2_blu_ray03.jpg http://tripoutlook.com/wp-content/uploads/2013/03/Car-parking.jpg http://upload.wikimedia.org/wikipedia/commons/5/52/Parallel_Parking_cars.jpg http://www.foreverbarcelona.com/wp-content/uploads/2014/02/Taxi-Tips.png http://i.livescience.com/images/i/000/024/292/iFF/neurons-120208.jpg?1328727600 59 All the pics used