2. Project Info
• 100% open source
• Docs and web-site licensed under Creative Commons
• Code licensed under ASL 2.0
• Top 10 Java projects on github
https://github.com/languages/Java/most_watched
3. What is Vert.x?
• General purpose application platform
• VMware sponsored OS project
• Runs on the JVM
• Provides primarily asynchronous APIs
• Popular for modern web applications
• Solves similar problems as Node.js, Akka, Play…
14. Verticles runs inside
a vert.x instance.
A single vert.x instance
runs inside its own
JVM instance.
15. Verticles
• Are the execution units of vert.x
• Mult-language by modules
• Application is composed by many verticles
• Verticles communicate by message passing
• Verticles provide isolation
16. Event Bus
• The nervous system of Vert.x
• Verticles communicate using the event bus.
• Ultra simple API.
• Point to point. Publish/Subscribe.
Request/Response.
• Pass simple strings, numbers or other
primitive types.
• JSON messages are preferred for structured
data.
17. Event Bus
• Allows verticles to talk each other
• Works cross language
• Works across the cluster
• Spans from server to client side
23. Scaling
• Scale by creating more Verticle instances
• Use message passing to communicate.
• Sounds like the Actor Model? It's similar
• For TCP and HTTP servers Vert.x will
automatically load-balance
24. SockJS
• Handles the communication between the
browser and the server.
• Provides a websocket-like API in client-side JS
• Works when websockets not available
• More info at http://sockjs.org
25. Internals
Netty for network IO
JRuby for the Ruby engine
Groovy
Mozilla Rhino for JS
Jython for Python support
Hazelcast for clustering
26. Future
• Scala and Clojure support
• Management, including GUI console
• Developer experience - IDE integration,
testing
• Direct-style API using continuations?