Building a HTTP Endpoint with Eclipse Vert.x

cescoffier
34.9K views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

What's Vert.x

We will attempt to explain Vert.x in just a few lines. As written on the Vert.x web site, Vert.x is "a toolkit for building reactive applications on the JVM".

There are a two equally important points in this description: toolkit and reactive.

Firstly, Vert.x is a toolkit. Meaning, Vert.x is not an application server, nor a framework. Vert.x is a plain old jar file, so a Vert.x application is an application that uses this jar file. Vert.x does not define a packaging model, all Vert.x components are plain boring jar files. How does this impact you and your application? Let’s imagine you are using a build tool such as Maven or Gradle, to make your application a Vert.x application just add the vertx-core dependency. Wanna use another Vert.x components, just add it as a dependency. It’s simple, burden-less. Starting the application is a simple class with the public static void main(String[] args) entry point. No specific IDE or plugin to install to start using Vert.x.

Then, Vert.x is reactive. Don't be confused by Reactive. There are many Reactive things today. Vert.x covers the whole reactive spectrum:

  • reactive system - an architectural style to build responsive distributed systems,
  • reactive streams - an API to process streams using an asynchronous non-blocking back-pressure,
  • reactive programming - APIs to implement asynchronous and event-driven program based on data flows

The reactive spectrum

To handle these three reactive facets, Vert.x is event-driven and also non-blocking. Events are delivered in an event loop that must never be blocked. We will see then event loop in action in this tutorial.

With Vert.x your are back in charge, no need to follow obscure framework rules. Vert.x is all about freedom!

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content