SlideShare a Scribd company logo
PRODUCTION READY VERT.X
Berlin | 30.04.2014
TABLE OF CONTENTS
1. Introduction
2. The Beginning
3. What is Vert.x?
4. How to start?
5. Infrastructure as code
6. Vert.x module system
7. Integration with messaging system
8. Kafka module
2Berlin | 2014 | zanox | JUG BB
INTRODUCTION ZANOX
Europe‘s leading performance advertising network
3Berlin | 2014 | zanox | JUG BB
THE BEGINNING
4Berlin | 2014 | zanox | JUG BB
Java Magazin 04.14:
Vert.x im Unternehmenseinsatz
Entwicklung und Betrieb von
asynchronen Applikationen mit Vert.x in
der Praxis
THE BEGINNING
● New request processing-system for Zanox
● Requirements are pretty high (not negotiable):
● Low latency
● High throughput
● Scalable
● Resilient
● Responsive
● Event-Driven
● Fast
5Berlin | 2014 | zanox | JUG BB
THE BEGINNING
6Berlin | 2014 | zanox | JUG BB
“Vert.x is a lightweight, high performance application
platform for the JVM that's designed for modern
mobile, web, and enterprise applications.”
Vert.x
WHAT IS VERT.X?
7Berlin | 2014 | zanox | JUG BB
WHAT IS VERT.X?
8Berlin | 2014 | zanox | JUG BB
Polyglot
WHAT IS A VERTICLE?
● Classes with an own Classloader
● operates Single Threaded
● executed by an Event Loop
9Berlin | 2014 | zanox | JUG BB
10Berlin | 2014 | zanox | JUG BB
Event Loop Pool
Event Bus
V V V W W W
TAKE A LOOK INSIDE
WHAT‘S DEEP INSIDE?
● Build on top of Netty 4
● Uses Hazelcast for node discovery
● Jackson for JSON
● Java7+
11Berlin | 2014 | zanox | JUG BB
HOW TO START?
● Prerequisite: JDK 7
● download and unzip file from vertx.io
● put /bin directory to PATH variable
12Berlin | 2014 | zanox | JUG BB
HOW TO START?
● mvn archetype:generate -Dfilter=io.vertx:
(do not forget the colon!)
● generates structure for all languages (JS, Ruby,
Groovy, Python)
● maven pom is already set with relevant data
13Berlin | 2014 | zanox | JUG BB
HOW TO START?
14Berlin | 2014 | zanox | JUG BB
BEST PRACTICES
15Berlin | 2014 | zanox | JUG BB
BEST PRACTICES
● do not block the loop
● put blocking code or extensive computation into
worker verticles
● keep the application responsive
● stress test as often as possible
● encapsulate common code in modules (more on this
later)
16Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
17Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
18Berlin | 2014 | zanox | JUG BB
"CHEF IS LIKE A LITTLE SYSTEM
ADMIN ROBOT ... YOU TELL IT
HOW YOU WANT YOUR SYSTEM
CONFIGURED, AND IT WILL DO ALL
THE DIRTY WORK.”
INFRASTRUCTURE AS CODE
19Berlin | 2014 | zanox | JUG BB
INFRASTRUCTURE AS CODE
20Berlin | 2014 | zanox | JUG BB
Chef Cookbook
INFRASTRUCTURE AS CODE
21Berlin | 2014 | zanox | JUG BB
VERT.X MODULE SYSTEM
● Vert.x has a powerful module system.
● Package your Vert.x components into modules for
encapsulation and reuse.
● The module is a zip file
● It can be just plugged in into your application
22Berlin | 2014 | zanox | JUG BB
VERT.X MODULE SYSTEM
● Share your modules with the community by putting
them in Maven Central, any other Maven repository, or
in Bintray.
● Advertise your module in the module registry.
23Berlin | 2014 | zanox | JUG BB
VERT.X MODULE REGISTRY
● Just fill in the form and wait for approval:
24Berlin | 2014 | zanox | JUG BB
INTEGRATION WITH MESSAGING
SYSTEM
● Apache Kafka is a publish-subscribe messaging
implemented as a distributed commit log.
● Fast
● Scalable
● Durable
● Distributed
25
KAFKA MESSAGING SYSTEM
Berlin | 2014 | zanox | JUG BB
INTEGRATION WITH MESSAGING
SYSTEM
● Topic - categories for feeds of messages
● Producer - publishes messages to topics
● Consumer - subscribes to topics and process the feed
of published messages consumers
● Broker - Kafka is run as a cluster comprised of one or
more servers each of which is called a broker.
26
MAIN TERMINOLOGY:
Berlin | 2014 | zanox | JUG BB
KAFKA MODULE
● Application sends messages to Kafka module using
Vert.x event bus
● Kafka module acts as a producer
● Available on Maven Central and Vert.x module registry
27Berlin | 2014 | zanox | JUG BB
KAFKA MODULE IN MODULE REGISTRY
Open sourced Kafka module in Vert.x’s module registry -
http://modulereg.vertx.io/
28Berlin | 2014 | zanox | JUG BB
USING VERT.X MODULE
First, deploy the module into your application:
container.deployModule("com.zanox.vertx~mo
d-kafka~1.0.2", config);
29Berlin | 2014 | zanox | JUG BB
USING KAFKA MODULE
JsonObject config = new JsonObject();
config.putString("kafka-topic", ‘kafka_topic“);
config.putString("metadata.broker.list",
“localhost:9092”);
config.putString("request.required.acks", "1");
30
CONFIGURATION IS A JSON OBJECT:
Berlin | 2014 | zanox | JUG BB
METRICS OF VERT.X PROJECT
● On 4 Cores virtual machine we had the following
results:
● ~28 K requests per second without Kafka, with
lookup from Redis
● ~18 K requests per second with Kafka and lookup
from Redis
31Berlin | 2014 | zanox | JUG BB
32Berlin | 2014 | zanox | JUG BB

More Related Content

PPTX
Vertx in production
PDF
Vert.x introduction
PPTX
Reactive applications and microservices with Vert.x tool-kit
PDF
Development with Vert.x: an event-driven application framework for the JVM
PDF
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
PPTX
Get acquainted with the new ASP.Net 5
PDF
Introduction to monix coeval
PPTX
Voyage en terre du multi-cloud
Vertx in production
Vert.x introduction
Reactive applications and microservices with Vert.x tool-kit
Development with Vert.x: an event-driven application framework for the JVM
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Get acquainted with the new ASP.Net 5
Introduction to monix coeval
Voyage en terre du multi-cloud

What's hot (20)

PDF
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
PDF
An Introduction to the Vert.x framework
PDF
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
PDF
vert.x - life beyond jetty and apache
PDF
Disaster recovery solution with open nebula and storpool
PDF
WebAssembly Fundamentals
PPTX
Bye bye WCF, hello gRPC
PDF
oVirt – open your virtual datacenter
PPTX
Node.js Internals and V8 / Operating System Interaction
PPTX
Discover Quarkus and GraalVM
PDF
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
PDF
Contrail Virtual Execution Platform
PPTX
Microservice Workshop Hands On
PPTX
OpenNebula in a Multiuser Environment
PPTX
Ruby on rails
PDF
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
PDF
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
PDF
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
PDF
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
PDF
NATS in action - A Real time Microservices Architecture handled by NATS
OpenNebulaConf 2016 - OpenNebula 5.0 Highlights and Beyond by Ruben S. Monter...
An Introduction to the Vert.x framework
OpenNebulaConf 2016 - Sunstone integration with FreeIPA using Single Sign by ...
vert.x - life beyond jetty and apache
Disaster recovery solution with open nebula and storpool
WebAssembly Fundamentals
Bye bye WCF, hello gRPC
oVirt – open your virtual datacenter
Node.js Internals and V8 / Operating System Interaction
Discover Quarkus and GraalVM
OpenNebulaConf 2016 - VTastic: Akamai Innovations for Distributed System Test...
Contrail Virtual Execution Platform
Microservice Workshop Hands On
OpenNebula in a Multiuser Environment
Ruby on rails
OpenNebulaConf2018 - Our Journey to OpenNebula - Germán Gutierrez - Booking.com
OpenNebulaconf2017US: Orchestration of vMware datacenters with OpenNebula by ...
OpenNebulaConf2017US: Welcome and project update by Ignacio M. Llorente and R...
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
NATS in action - A Real time Microservices Architecture handled by NATS
Ad

Viewers also liked (20)

PPTX
Real World Enterprise Reactive Programming using Vert.x
PDF
Vert.x – The problem of real-time data binding
PDF
Plugging holes — javascript memory leak debugging
PDF
PPTX
Cloud Patterns Beuth Hochschule
PPTX
Docker in der Cloud
PPTX
Docker in der AWS Cloud
PPTX
MTC 2013 monetarisierung
PPTX
Real World Enterprise Reactive Programming using Vert.x
PPT
DevOpsCon Cloud Workshop
PPTX
Docker on AWS
PDF
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
PDF
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
PPTX
Sas 2015 event_driven
PPT
Docker in the Cloud
PPTX
Integrate Jenkins with S3
PDF
Vert.x
PDF
Vert.x using Groovy - Simplifying non-blocking code
KEY
BED Con JBoss
PDF
Vert.x 3
Real World Enterprise Reactive Programming using Vert.x
Vert.x – The problem of real-time data binding
Plugging holes — javascript memory leak debugging
Cloud Patterns Beuth Hochschule
Docker in der Cloud
Docker in der AWS Cloud
MTC 2013 monetarisierung
Real World Enterprise Reactive Programming using Vert.x
DevOpsCon Cloud Workshop
Docker on AWS
Максим Сабарня и Иван Дрижирук “Vert.x – tool-kit for building reactive app...
Lift Urban Entrepreneurs Seoul Ideation Workshop, Nov 12, 2016
Sas 2015 event_driven
Docker in the Cloud
Integrate Jenkins with S3
Vert.x
Vert.x using Groovy - Simplifying non-blocking code
BED Con JBoss
Vert.x 3
Ad

Similar to Production ready Vert.x (20)

PDF
Utrecht JUG - Building microservices with Vert.x
PDF
Codemotion Amsterdam 2016 - Building microservices with Vert.x
PDF
Building microservices with Vert.x - Bert Jan Schrijver - Codemotion Amsterda...
PDF
JBCNConf 2017 - Building microservices with Vert.x
PDF
VJUG 24 - Building microservices with Vert.x
PDF
Vert.x NL meetup October 2017 - Building microservices with Vert.x
PDF
Dublin JUG February 2018 - Building microservices with Vert.x
PDF
Malmberg meetup June 2018 - Building microservices with Vert.x
PDF
Devoxx UK 2016 - Building microservices with Vert.x
PPTX
Vert.x v3 - high performance polyglot application toolkit
PPTX
Vert.x devoxx london 2013
PDF
Vert.x - 2014 JDay Lviv (English)
PDF
Apps software development with Vert.X
PPTX
Building microservices with vert.x 3.0
PDF
JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM
ODP
Vert.x keynote for EclipseCon 2013
PDF
Building microservices with Vert.X @ Fall 2016
PPTX
Vert.x - Reactive & Distributed [Devoxx version]
PDF
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
ODP
Build your reactive web application with Vert.x
Utrecht JUG - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Building microservices with Vert.x - Bert Jan Schrijver - Codemotion Amsterda...
JBCNConf 2017 - Building microservices with Vert.x
VJUG 24 - Building microservices with Vert.x
Vert.x NL meetup October 2017 - Building microservices with Vert.x
Dublin JUG February 2018 - Building microservices with Vert.x
Malmberg meetup June 2018 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.x
Vert.x v3 - high performance polyglot application toolkit
Vert.x devoxx london 2013
Vert.x - 2014 JDay Lviv (English)
Apps software development with Vert.X
Building microservices with vert.x 3.0
JBCNConf: jBPM & Vert.x Reactive and Polyglot BPM
Vert.x keynote for EclipseCon 2013
Building microservices with Vert.X @ Fall 2016
Vert.x - Reactive & Distributed [Devoxx version]
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
Build your reactive web application with Vert.x

Recently uploaded (20)

PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
Operating system designcfffgfgggggggvggggggggg
Monitoring Stack: Grafana, Loki & Promtail
Odoo Companies in India – Driving Business Transformation.pdf
Transform Your Business with a Software ERP System
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Reimagine Home Health with the Power of Agentic AI​
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Download FL Studio Crack Latest version 2025 ?
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Design an Analysis of Algorithms II-SECS-1021-03
Digital Systems & Binary Numbers (comprehensive )
Designing Intelligence for the Shop Floor.pdf
CHAPTER 2 - PM Management and IT Context
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Autodesk AutoCAD Crack Free Download 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How to Choose the Right IT Partner for Your Business in Malaysia
Computer Software and OS of computer science of grade 11.pptx
Advanced SystemCare Ultimate Crack + Portable (2025)

Production ready Vert.x

  • 2. TABLE OF CONTENTS 1. Introduction 2. The Beginning 3. What is Vert.x? 4. How to start? 5. Infrastructure as code 6. Vert.x module system 7. Integration with messaging system 8. Kafka module 2Berlin | 2014 | zanox | JUG BB
  • 3. INTRODUCTION ZANOX Europe‘s leading performance advertising network 3Berlin | 2014 | zanox | JUG BB
  • 4. THE BEGINNING 4Berlin | 2014 | zanox | JUG BB Java Magazin 04.14: Vert.x im Unternehmenseinsatz Entwicklung und Betrieb von asynchronen Applikationen mit Vert.x in der Praxis
  • 5. THE BEGINNING ● New request processing-system for Zanox ● Requirements are pretty high (not negotiable): ● Low latency ● High throughput ● Scalable ● Resilient ● Responsive ● Event-Driven ● Fast 5Berlin | 2014 | zanox | JUG BB
  • 6. THE BEGINNING 6Berlin | 2014 | zanox | JUG BB
  • 7. “Vert.x is a lightweight, high performance application platform for the JVM that's designed for modern mobile, web, and enterprise applications.” Vert.x WHAT IS VERT.X? 7Berlin | 2014 | zanox | JUG BB
  • 8. WHAT IS VERT.X? 8Berlin | 2014 | zanox | JUG BB Polyglot
  • 9. WHAT IS A VERTICLE? ● Classes with an own Classloader ● operates Single Threaded ● executed by an Event Loop 9Berlin | 2014 | zanox | JUG BB
  • 10. 10Berlin | 2014 | zanox | JUG BB Event Loop Pool Event Bus V V V W W W TAKE A LOOK INSIDE
  • 11. WHAT‘S DEEP INSIDE? ● Build on top of Netty 4 ● Uses Hazelcast for node discovery ● Jackson for JSON ● Java7+ 11Berlin | 2014 | zanox | JUG BB
  • 12. HOW TO START? ● Prerequisite: JDK 7 ● download and unzip file from vertx.io ● put /bin directory to PATH variable 12Berlin | 2014 | zanox | JUG BB
  • 13. HOW TO START? ● mvn archetype:generate -Dfilter=io.vertx: (do not forget the colon!) ● generates structure for all languages (JS, Ruby, Groovy, Python) ● maven pom is already set with relevant data 13Berlin | 2014 | zanox | JUG BB
  • 14. HOW TO START? 14Berlin | 2014 | zanox | JUG BB
  • 15. BEST PRACTICES 15Berlin | 2014 | zanox | JUG BB
  • 16. BEST PRACTICES ● do not block the loop ● put blocking code or extensive computation into worker verticles ● keep the application responsive ● stress test as often as possible ● encapsulate common code in modules (more on this later) 16Berlin | 2014 | zanox | JUG BB
  • 17. INFRASTRUCTURE AS CODE 17Berlin | 2014 | zanox | JUG BB
  • 18. INFRASTRUCTURE AS CODE 18Berlin | 2014 | zanox | JUG BB "CHEF IS LIKE A LITTLE SYSTEM ADMIN ROBOT ... YOU TELL IT HOW YOU WANT YOUR SYSTEM CONFIGURED, AND IT WILL DO ALL THE DIRTY WORK.”
  • 19. INFRASTRUCTURE AS CODE 19Berlin | 2014 | zanox | JUG BB
  • 20. INFRASTRUCTURE AS CODE 20Berlin | 2014 | zanox | JUG BB Chef Cookbook
  • 21. INFRASTRUCTURE AS CODE 21Berlin | 2014 | zanox | JUG BB
  • 22. VERT.X MODULE SYSTEM ● Vert.x has a powerful module system. ● Package your Vert.x components into modules for encapsulation and reuse. ● The module is a zip file ● It can be just plugged in into your application 22Berlin | 2014 | zanox | JUG BB
  • 23. VERT.X MODULE SYSTEM ● Share your modules with the community by putting them in Maven Central, any other Maven repository, or in Bintray. ● Advertise your module in the module registry. 23Berlin | 2014 | zanox | JUG BB
  • 24. VERT.X MODULE REGISTRY ● Just fill in the form and wait for approval: 24Berlin | 2014 | zanox | JUG BB
  • 25. INTEGRATION WITH MESSAGING SYSTEM ● Apache Kafka is a publish-subscribe messaging implemented as a distributed commit log. ● Fast ● Scalable ● Durable ● Distributed 25 KAFKA MESSAGING SYSTEM Berlin | 2014 | zanox | JUG BB
  • 26. INTEGRATION WITH MESSAGING SYSTEM ● Topic - categories for feeds of messages ● Producer - publishes messages to topics ● Consumer - subscribes to topics and process the feed of published messages consumers ● Broker - Kafka is run as a cluster comprised of one or more servers each of which is called a broker. 26 MAIN TERMINOLOGY: Berlin | 2014 | zanox | JUG BB
  • 27. KAFKA MODULE ● Application sends messages to Kafka module using Vert.x event bus ● Kafka module acts as a producer ● Available on Maven Central and Vert.x module registry 27Berlin | 2014 | zanox | JUG BB
  • 28. KAFKA MODULE IN MODULE REGISTRY Open sourced Kafka module in Vert.x’s module registry - http://modulereg.vertx.io/ 28Berlin | 2014 | zanox | JUG BB
  • 29. USING VERT.X MODULE First, deploy the module into your application: container.deployModule("com.zanox.vertx~mo d-kafka~1.0.2", config); 29Berlin | 2014 | zanox | JUG BB
  • 30. USING KAFKA MODULE JsonObject config = new JsonObject(); config.putString("kafka-topic", ‘kafka_topic“); config.putString("metadata.broker.list", “localhost:9092”); config.putString("request.required.acks", "1"); 30 CONFIGURATION IS A JSON OBJECT: Berlin | 2014 | zanox | JUG BB
  • 31. METRICS OF VERT.X PROJECT ● On 4 Cores virtual machine we had the following results: ● ~28 K requests per second without Kafka, with lookup from Redis ● ~18 K requests per second with Kafka and lookup from Redis 31Berlin | 2014 | zanox | JUG BB
  • 32. 32Berlin | 2014 | zanox | JUG BB