9. +380 (63) 223-17-47 • ardas.ua
Verticles / Workers / Event bus
● A verticle never gets executed by more than one thread concurrently
● No race conditions, no deadlocks. You write your code as single threaded
● Never block event loop
● Use workers
● Asynchronous model
● Verticles are isolated by separate class loaders
● Send - for one listener, publish - for all listeners
17. +380 (63) 223-17-47 • ardas.ua
Vert.x Modules
● Package verticles into re-usable modules
● Simply a zip containing module definition, code and
resources
● Modules can be “zip” artifacts released in Maven
Central
● Vert.x web site maintains a listing of Vert.x modules
18. +380 (63) 223-17-47 • ardas.ua
Pain
● Content assist in IDE don’t work for busmod APIs
19. +380 (63) 223-17-47 • ardas.ua
Pain
● You often find yourself tracing errors in the busmods,
which can be difficult because the stack trace stops at
message passing
20. +380 (63) 223-17-47 • ardas.ua
Pain
● Hell of anonymous inner class callbacks
vertx.eventBus().registerHandler(EVENT_LOG, new Handler<Message>() {
@Override
public void handle(Message message) {
vertx.eventBus().send(CASSANDRA_CLIENT, message.body(), new Handler<Message>() {
@Override
public void handle(Message event) {
message.reply(true);
}
});
}
});
24. +380 (63) 223-17-47 • ardas.ua
Development process
Run Mode
● java
● html
● js
{
"main":"ua.dp.ardas
.EntryPointVerticle",
"auto-redeploy": true
}
src/main/resources/mod.json
25. +380 (63) 223-17-47 • ardas.ua
Development process
You can use Vert.x with multiple languages
● Java
● JavaScript
● Groovy
● Ruby.
26. +380 (63) 223-17-47 • ardas.ua
History
● 17/06/11 - First commit in project "Node.x"
● 09/05/12 - Vert.x 1.0 final released
● 17/07/13 - Vert.x 2.0 final released
● 08/13 - Vert.x joins Eclipse Foundation
● 05/14 - Vert.x won the award for "Most Innovative Java
Technology" at the JAX Innovation awards
● 13/11/14 - Vert.x 2.1.5 released
● 24/06/15 - Vert.x 3.0.0 released
31. +380 (63) 223-17-47 • ardas.ua
Summary
The platform for modern web and enterprise application
development.
● The best choice for new generation of rich client apps
● Polyglot: Use the language you want
● Seamless scalability
● Simplicity and Power
● Top end performance