Vert.x logo

Vert.x

A tool-kit for building reactive applications on the JVM
259
323
+ 1
59

What is Vert.x?

It is event driven and non blocking application framework. This means your app can handle a lot of concurrency using a small number of kernel threads. It lets your app scale with minimal hardware.
Vert.x is a tool in the Frameworks (Full Stack) category of a tech stack.

Who uses Vert.x?

Companies
45 companies reportedly use Vert.x in their tech stacks, including Trade Republic, Braincube, and JustChunks.

Developers
207 developers on StackShare have stated that they use Vert.x.

Vert.x Integrations

JavaScript, Java, Ruby, Kotlin, and Groovy are some of the popular tools that integrate with Vert.x. Here's a list of all 5 tools that integrate with Vert.x.
Pros of Vert.x
13
Light weight
12
Fast
8
Java
6
Developers Are Super
5
Extensible
2
Easy Socks.js integration
2
Asynchronous
1
Strong concurrency model
1
Great tooling
1
Easy integration
1
Central Config (Redis)
1
Good documentation
1
Abstract data grid API
1
Unopinionated
1
Clustering Infrastructure
1
Scalable
1
Parallelism
1
Actor-like model
Decisions about Vert.x

Here are some stack decisions, common use cases and reviews by companies and developers who chose Vert.x in their tech stack.

Needs advice
on
KafkaKafka
and
Vert.xVert.x

We send and receive messages continuously with the help of Kafka. But Kafka is provided by both Apache and Vert.x which are called Kafka and Vert.x Kafka respectively. I need to know which one is best and why in terms of performance. Also the purpose of their own type.

See more
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 6 upvotes · 2.1M views

We use GraphQL for the communication between our Minecraft-Proxies/Load-Balancers and our global Minecraft-Orchestration-Service JCOverseer.

This connection proved to be especially challenging, as there were so many available options and very specific requirements and we tried our hardest to put as little complexity into this interface as possible.

Initially we considered designing our very own Netty based Packet-Protocol. While the performance of this approach probably would've been noteworthy, we would have had to write a lot of packets as the individual payloads would differ a lot and for the protocol specification a new project would've been needed, so we scrapped that idea.

Our second idea was to use a combination of Redis Key/Value store (in particular the ability to write whole, complex sets as the values of keys) for existing data, Redis Pub-Sub for the synchronization of new/changed/deleted data and a Vert.x based REST API for the mutation requests of the clients. While this would certainly have been possible, we decided against it, as redis offers no real other data types than strings and typing was important to us.

So we finally settled for GraphQL as it would allow us to define dynamic queries and mutations and additionally has subscriptions in store, so we would only need one component instead of three separate. The proxies register as subscribers to the server changes channel and fetch the current data set in advance. If they need to request changes, this is done through a mutation in GraphQL aswell.

The status of the invidiual servers is fetched through Docker healthchecks and a Docker client in the orchestration service, that subscribes to changed HEALTHINESS values in docker. If a service becomes unhealthy it is unregistered and synchronized through GraphQL. The healthcheck is comparable to a ping packet that expects a response in a given time frame.

See more
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 4 upvotes · 259.7K views

We use Quarkus with native compilation in GraalVM for our global REST-API "Charon", that can be used by every developer to request user, server and game-data (protected through OAuth2). Quarkus offers a reliable framework, library and stack for high-quality APIs and integrates Vert.x into its core.

GraalVM pushes the performance boundaries even further with the ability to perform ahead-of-time native compilation so we can reach an incredible small memory-footprint and fast bootup-times that we need for our microservices architecture.

See more

Vert.x's Features

  • polygot
  • Simple concurrency model

Vert.x Alternatives & Comparisons

What are some alternatives to Vert.x?
Spring
A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
Akka
Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
RxJava
A library for composing asynchronous and event-based programs by using observable sequences for the Java VM.
Netty
Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.
Ktor
It is a framework for building asynchronous servers and clients in connected systems using the Kotlin programming language.
See all alternatives

Vert.x's Followers
323 developers follow Vert.x to keep up with related blogs and decisions.