SlideShare a Scribd company logo
tool-kit for building reactive
applications on the JVM
Ivan Drizhiruk
Maxim Sabarnya
+380 (63) 223-17-47 • ardas.ua
Problems of enterprise solutions
● Multithreading programming
● Communication client/server
● Large application architecture
● Scalability
● Management
● Performance
+380 (63) 223-17-47 • ardas.ua
Multithreading programming
+380 (63) 223-17-47 • ardas.ua
+380 (63) 223-17-47 • ardas.ua
Vert.x Event loop
+380 (63) 223-17-47 • ardas.ua
Vert.x Event loop
+380 (63) 223-17-47 • ardas.ua
Vert.x Event Bus
+380 (63) 223-17-47 • ardas.ua
Vert.x Event Bus
eventBus.
publish("news.ua.sport", "Yay! Someone kicked a ball");
eventBus.
send("news.ua.sport", "Yay! Someone kicked a ball",
Handler<? extends Message> handler);
eventBus
.registerHandler(
"news.ua.sport",
Handler<? extends Message> handler);
+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
+380 (63) 223-17-47 • ardas.ua
Communication client/server
+380 (63) 223-17-47 • ardas.ua
Event Bus Bridge
+380 (63) 223-17-47 • ardas.ua
Event Bus Bridge
<script src="vertxbus-2.1.js"></script>
var eventBus = new vertx.EventBus('//domainexample/testapp/eventbus');
eventBus.send(address, message, replyHandler);
eventBus.publish(address, message)
eventBus.registerHandler(address, handler);
+380 (63) 223-17-47 • ardas.ua
ServerHook
public interface EventBusBridgeHook {
boolean handleSocketCreated(SockJSSocket sock);
void handleSocketClosed(SockJSSocket sock);
boolean handlePreRegister(SockJSSocket sock, String address);
void handlePostRegister(SockJSSocket sock, String address);
boolean handleUnregister(SockJSSocket sock, String address);
boolean handleSendOrPub(SockJSSocket sock, boolean send, JsonObject msg, String address);
boolean handleAuthorise(JsonObject message, String sessionID,
Handler<AsyncResult<Boolean>> handler);
}
+380 (63) 223-17-47 • ardas.ua
Large application architecture
+380 (63) 223-17-47 • ardas.ua
Large application architecture
+380 (63) 223-17-47 • ardas.ua
Architecture - microservices
+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
+380 (63) 223-17-47 • ardas.ua
Pain
● Content assist in IDE don’t work for busmod APIs
+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
+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);
}
});
}
});
+380 (63) 223-17-47 • ardas.ua
Pain
● Hell of anonymous inner class callbacks
vertx.eventBus().registerHandler(EVENT_LOG,
inMessage -> vertx.eventBus().send(CASSANDRA_CLIENT, inMessage.body(),
event -> inMessage.reply(true)));
});
+380 (63) 223-17-47 • ardas.ua
Pain
● Custom objects from shared memory can’t be used in
different verticles
Obj Cucumber ≠ Obj Cucumber
+380 (63) 223-17-47 • ardas.ua
Pain
● Changing standard behaviour
+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
+380 (63) 223-17-47 • ardas.ua
Development process
You can use Vert.x with multiple languages
● Java
● JavaScript
● Groovy
● Ruby.
+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
+380 (63) 223-17-47 • ardas.ua
Performance
+380 (63) 223-17-47 • ardas.ua
Performance
+380 (63) 223-17-47 • ardas.ua
Example - chat
+380 (63) 223-17-47 • ardas.ua
Who’s using Vert.x ?
+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
email: ivan.drizhiruk@ardas.ua
skype: ivan.drizhiruk
email: maxim.sabarnya@ardas.ua
skype: sabarnya.maxim
Questions?

More Related Content

What's hot (20)

PDF
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
zznate
 
PPTX
DevOpsDays Warsaw 2015: Running High Performance And Fault Tolerant Elasticse...
PROIDEA
 
PDF
Static Typing in Vault
GlynnForrest
 
PDF
Coursera Cassandra Driver
DataStax Academy
 
PDF
Ground Control to Nomad Job Dispatch
Michael Lange
 
PDF
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 
PDF
Hardening cassandra q2_2016
zznate
 
PDF
Software Development with Apache Cassandra
zznate
 
PPTX
What I learned from FluentConf and then some
Ohad Kravchick
 
ODP
Meetup cassandra sfo_jdbc
zznate
 
PPTX
bootstrapping containers with confd
m_richardson
 
KEY
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
PDF
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Sean Chittenden
 
PDF
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden
 
PDF
Rails Caching Secrets from the Edge
Michael May
 
PDF
FleetDB: A Schema-Free Database in Clojure
Mark McGranaghan
 
PDF
Hardening cassandra for compliance or paranoia
zznate
 
PDF
Ajax Performance Tuning and Best Practices
Doris Chen
 
PPTX
Async servers and clients in Rest.li
Karan Parikh
 
PDF
Observability with Consul Connect
Bram Vogelaar
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
zznate
 
DevOpsDays Warsaw 2015: Running High Performance And Fault Tolerant Elasticse...
PROIDEA
 
Static Typing in Vault
GlynnForrest
 
Coursera Cassandra Driver
DataStax Academy
 
Ground Control to Nomad Job Dispatch
Michael Lange
 
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 
Hardening cassandra q2_2016
zznate
 
Software Development with Apache Cassandra
zznate
 
What I learned from FluentConf and then some
Ohad Kravchick
 
Meetup cassandra sfo_jdbc
zznate
 
bootstrapping containers with confd
m_richardson
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Sean Chittenden
 
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden
 
Rails Caching Secrets from the Edge
Michael May
 
FleetDB: A Schema-Free Database in Clojure
Mark McGranaghan
 
Hardening cassandra for compliance or paranoia
zznate
 
Ajax Performance Tuning and Best Practices
Doris Chen
 
Async servers and clients in Rest.li
Karan Parikh
 
Observability with Consul Connect
Bram Vogelaar
 

Viewers also liked (9)

PDF
Vert.x
Xavier MARIN
 
PDF
Vert.x 3
Xavier MARIN
 
PPTX
Vert.x devoxx london 2013
Stuart (Pid) Williams
 
PDF
Vert.x
Matt Stine
 
PDF
Vert.x – The problem of real-time data binding
Alex Derkach
 
PPTX
Production ready Vert.x
Sascha Möllering
 
PPTX
Vert.x v3 - high performance polyglot application toolkit
Sages
 
ODP
SockJS Intro
Ngoc Dao
 
PDF
vert.x 3.1 - be reactive on the JVM but not only in Java
Clément Escoffier
 
Vert.x
Xavier MARIN
 
Vert.x 3
Xavier MARIN
 
Vert.x devoxx london 2013
Stuart (Pid) Williams
 
Vert.x
Matt Stine
 
Vert.x – The problem of real-time data binding
Alex Derkach
 
Production ready Vert.x
Sascha Möllering
 
Vert.x v3 - high performance polyglot application toolkit
Sages
 
SockJS Intro
Ngoc Dao
 
vert.x 3.1 - be reactive on the JVM but not only in Java
Clément Escoffier
 
Ad

Similar to Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive applications on the JVM” (20)

PDF
ITCamp 2018 - Magnus Mårtensson - Azure Resource Manager For The Win
ITCamp
 
PDF
Terraform introduction
Jason Vance
 
PPTX
2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
Daniel Fisher
 
PDF
Extending HashiCorp Nomad with Plugins
Mitchell Pronschinske
 
PDF
AWS Lambda with Serverless Framework and Java
Manish Pandit
 
PDF
Максим Сабарня “NoSQL: Not only SQL in developer’s life”
Anna Shymchenko
 
PPTX
Hazelcast and MongoDB at Cloud CMS
uzquiano
 
PPTX
Azure from scratch part 4
Girish Kalamati
 
KEY
Modular Web Applications With Netzke
netzke
 
PDF
Dynamic Data Visualization With Chartkick
Dax Murray
 
ODP
Git dvcs and Information Security Review
dchaffiol
 
PDF
From the fire hose series an insider’s guide to desktop virtualization
Ngi-NGN, platform voor ict professionals
 
PDF
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
CODE BLUE
 
PDF
GopherCon Gilmour
Piyush Verma
 
PPTX
DevOOPS: Attacks and Defenses for DevOps Toolchains
Chris Gates
 
PPTX
Oracle to Azure PostgreSQL database migration webinar
Minnie Seungmin Cho
 
PPTX
Domain-Driven Design with SeedStack
SeedStack
 
PDF
Hazelcast
oztalip
 
PDF
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
Matt Raible
 
PDF
Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...
Codemotion
 
ITCamp 2018 - Magnus Mårtensson - Azure Resource Manager For The Win
ITCamp
 
Terraform introduction
Jason Vance
 
2009 - Basta!: Url rewriting mit iis, asp.net und routing engine
Daniel Fisher
 
Extending HashiCorp Nomad with Plugins
Mitchell Pronschinske
 
AWS Lambda with Serverless Framework and Java
Manish Pandit
 
Максим Сабарня “NoSQL: Not only SQL in developer’s life”
Anna Shymchenko
 
Hazelcast and MongoDB at Cloud CMS
uzquiano
 
Azure from scratch part 4
Girish Kalamati
 
Modular Web Applications With Netzke
netzke
 
Dynamic Data Visualization With Chartkick
Dax Murray
 
Git dvcs and Information Security Review
dchaffiol
 
From the fire hose series an insider’s guide to desktop virtualization
Ngi-NGN, platform voor ict professionals
 
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
CODE BLUE
 
GopherCon Gilmour
Piyush Verma
 
DevOOPS: Attacks and Defenses for DevOps Toolchains
Chris Gates
 
Oracle to Azure PostgreSQL database migration webinar
Minnie Seungmin Cho
 
Domain-Driven Design with SeedStack
SeedStack
 
Hazelcast
oztalip
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
Matt Raible
 
Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...
Codemotion
 
Ad

More from Anna Shymchenko (20)

PPTX
Константин Маркович: "Creating modular application using Spring Boot "
Anna Shymchenko
 
PPTX
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Anna Shymchenko
 
PPTX
Евгений Руднев: "Programmers Approach to Error Handling"
Anna Shymchenko
 
PPTX
Александр Куцан: "Static Code Analysis in C++"
Anna Shymchenko
 
PPTX
Алесей Решта: “Robotics Sport & Luxoft Open Robotics Club”
Anna Shymchenko
 
PPTX
Орхан Гасимов: "Reactive Applications in Java with Akka"
Anna Shymchenko
 
PPTX
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Anna Shymchenko
 
PPTX
Денис Прокопюк: “JMX in Java EE applications”
Anna Shymchenko
 
PDF
Роман Яворский "Introduction to DevOps"
Anna Shymchenko
 
PDF
Андрей Лисниченко "SQL Injection"
Anna Shymchenko
 
PPTX
Светлана Мухина "Metrics on agile projects"
Anna Shymchenko
 
PPTX
Андрей Слободяник "Test driven development using mockito"
Anna Shymchenko
 
PPTX
Евгений Хыст "Application performance database related problems"
Anna Shymchenko
 
PPTX
Даурен Муса “IBM WebSphere - expensive but effective”
Anna Shymchenko
 
PPTX
Александр Пашинский "Reinventing Design Patterns with Java 8"
Anna Shymchenko
 
PPTX
Евгений Капинос "Advanced JPA (Java Persistent API)"
Anna Shymchenko
 
PPTX
Event-driven architecture with Java technology stack
Anna Shymchenko
 
PPTX
Do we need SOLID principles during software development?
Anna Shymchenko
 
PPTX
Guava - Elements of Functional Programming
Anna Shymchenko
 
PPTX
Сергей Гончарук "Working with uncertainty"
Anna Shymchenko
 
Константин Маркович: "Creating modular application using Spring Boot "
Anna Shymchenko
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Anna Shymchenko
 
Евгений Руднев: "Programmers Approach to Error Handling"
Anna Shymchenko
 
Александр Куцан: "Static Code Analysis in C++"
Anna Shymchenko
 
Алесей Решта: “Robotics Sport & Luxoft Open Robotics Club”
Anna Shymchenko
 
Орхан Гасимов: "Reactive Applications in Java with Akka"
Anna Shymchenko
 
Евгений Хыст: "Server-Side Geo-Clustering Based on Geohash"
Anna Shymchenko
 
Денис Прокопюк: “JMX in Java EE applications”
Anna Shymchenko
 
Роман Яворский "Introduction to DevOps"
Anna Shymchenko
 
Андрей Лисниченко "SQL Injection"
Anna Shymchenko
 
Светлана Мухина "Metrics on agile projects"
Anna Shymchenko
 
Андрей Слободяник "Test driven development using mockito"
Anna Shymchenko
 
Евгений Хыст "Application performance database related problems"
Anna Shymchenko
 
Даурен Муса “IBM WebSphere - expensive but effective”
Anna Shymchenko
 
Александр Пашинский "Reinventing Design Patterns with Java 8"
Anna Shymchenko
 
Евгений Капинос "Advanced JPA (Java Persistent API)"
Anna Shymchenko
 
Event-driven architecture with Java technology stack
Anna Shymchenko
 
Do we need SOLID principles during software development?
Anna Shymchenko
 
Guava - Elements of Functional Programming
Anna Shymchenko
 
Сергей Гончарук "Working with uncertainty"
Anna Shymchenko
 

Recently uploaded (20)

PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PDF
Best Web development company in india 2025
Greenusys
 
PDF
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
PPTX
Transforming Insights: How Generative AI is Revolutionizing Data Analytics
LetsAI Solutions
 
PPTX
Library_Management_System_PPT111111.pptx
nmtnissancrm
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
Best Web development company in india 2025
Greenusys
 
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
Transforming Insights: How Generative AI is Revolutionizing Data Analytics
LetsAI Solutions
 
Library_Management_System_PPT111111.pptx
nmtnissancrm
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
Why is partnering with a SaaS development company crucial for enterprise succ...
Nextbrain Technologies
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 

Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive applications on the JVM”

  • 1. tool-kit for building reactive applications on the JVM Ivan Drizhiruk Maxim Sabarnya
  • 2. +380 (63) 223-17-47 • ardas.ua Problems of enterprise solutions ● Multithreading programming ● Communication client/server ● Large application architecture ● Scalability ● Management ● Performance
  • 3. +380 (63) 223-17-47 • ardas.ua Multithreading programming
  • 4. +380 (63) 223-17-47 • ardas.ua
  • 5. +380 (63) 223-17-47 • ardas.ua Vert.x Event loop
  • 6. +380 (63) 223-17-47 • ardas.ua Vert.x Event loop
  • 7. +380 (63) 223-17-47 • ardas.ua Vert.x Event Bus
  • 8. +380 (63) 223-17-47 • ardas.ua Vert.x Event Bus eventBus. publish("news.ua.sport", "Yay! Someone kicked a ball"); eventBus. send("news.ua.sport", "Yay! Someone kicked a ball", Handler<? extends Message> handler); eventBus .registerHandler( "news.ua.sport", Handler<? extends Message> handler);
  • 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
  • 10. +380 (63) 223-17-47 • ardas.ua Communication client/server
  • 11. +380 (63) 223-17-47 • ardas.ua Event Bus Bridge
  • 12. +380 (63) 223-17-47 • ardas.ua Event Bus Bridge <script src="vertxbus-2.1.js"></script> var eventBus = new vertx.EventBus('//domainexample/testapp/eventbus'); eventBus.send(address, message, replyHandler); eventBus.publish(address, message) eventBus.registerHandler(address, handler);
  • 13. +380 (63) 223-17-47 • ardas.ua ServerHook public interface EventBusBridgeHook { boolean handleSocketCreated(SockJSSocket sock); void handleSocketClosed(SockJSSocket sock); boolean handlePreRegister(SockJSSocket sock, String address); void handlePostRegister(SockJSSocket sock, String address); boolean handleUnregister(SockJSSocket sock, String address); boolean handleSendOrPub(SockJSSocket sock, boolean send, JsonObject msg, String address); boolean handleAuthorise(JsonObject message, String sessionID, Handler<AsyncResult<Boolean>> handler); }
  • 14. +380 (63) 223-17-47 • ardas.ua Large application architecture
  • 15. +380 (63) 223-17-47 • ardas.ua Large application architecture
  • 16. +380 (63) 223-17-47 • ardas.ua Architecture - microservices
  • 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); } }); } });
  • 21. +380 (63) 223-17-47 • ardas.ua Pain ● Hell of anonymous inner class callbacks vertx.eventBus().registerHandler(EVENT_LOG, inMessage -> vertx.eventBus().send(CASSANDRA_CLIENT, inMessage.body(), event -> inMessage.reply(true))); });
  • 22. +380 (63) 223-17-47 • ardas.ua Pain ● Custom objects from shared memory can’t be used in different verticles Obj Cucumber ≠ Obj Cucumber
  • 23. +380 (63) 223-17-47 • ardas.ua Pain ● Changing standard behaviour
  • 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
  • 27. +380 (63) 223-17-47 • ardas.ua Performance
  • 28. +380 (63) 223-17-47 • ardas.ua Performance
  • 29. +380 (63) 223-17-47 • ardas.ua Example - chat
  • 30. +380 (63) 223-17-47 • ardas.ua Who’s using Vert.x ?
  • 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