Eclipse Vert.x 4 milestone 2 released!

We are ex­tremely pleased to an­nounce the sec­ond 4.0 mile­stone re­lease of Eclipse Vert.x .

Vert.x 4 is the evo­lu­tion of the Vert.x 3.x se­ries that will bring key fea­tures to Vert.x.

This re­lease aims to pro­vide a re­li­able dis­tri­b­u­tion of the cur­rent de­vel­op­ment of Vert.x 4 for peo­ple who want to try it and pro­vide feed­back.

Futurisation

Vert.x 4 ex­tends the 3.x call­back asyn­chro­nous model to a fu­ture/call­back hy­brid model.

public interface NetClient {

  // Since 3.0
  void connect(int port, String host, Handler<AsyncResult<NetSocket>> handler);

  // New in 4.0
  Future<NetSocket> connect(int port, String host);
}

The first mile­stone, only cov­ered Vert.x Core, this sec­ond mile­stone has made sig­nif­i­cant progress with the fu­tur­i­sa­tion of the fol­low­ing stack mod­ules:

  • vertx-​auth
  • vertx-​web
  • vertx-​mqtt
  • vertx-​cassandra-client
  • vertx-​redis-client
  • vertx-​kakfa-client
  • vertx-​amqp-client

Tracing

In­stru­ment­ing asyn­chro­nous ap­pli­ca­tion for dis­trib­uted trac­ing is quite chal­leng­ing be­cause most trac­ing li­braries rely on thread local stor­age. While it works rea­sonnably well in a block­ing ap­pli­ca­tion, this does not work for an asyn­chro­nous ap­pli­ca­tion.

This sup­poses that the ap­pli­ca­tion con­trol flow mat­ters (i.e threads) al­though what re­ally mat­ters is the ap­pli­ca­tion re­quest flow (e.g the in­com­ing HTTP re­quest).

We im­proved Vert.x 4 to reify the re­quest flow, mak­ing it pos­si­ble to in­te­grate pop­u­lar trac­ing tools such as Zip­kin or Open­trac­ing. Vert.x per­for­mance is leg­endary and we made sure that this does not have any over­head out of the box (dis­abled).

We pro­vide sup­port for these two pop­u­lar li­braries under the Vert.x Trac­ing um­brella.

Other changes

  • Groovy has been sim­pli­fied in Vert.x 4 to re­move code gen­er­a­tion that was not re­ally needed in prac­tice
  • The orig­i­nal Redis client dep­re­cated in 3.7 has been re­moved re­placed by the new Redis client
  • The fol­low­ing com­po­nents have reached their end of life and have been pruned
    • MySQL / Post­greSQL async client re­placed by the Vert.x SQL Client (since 3.8)
    • AMQP bridge re­placed by the Vert.x AMQP Client (since 3.7)

Ramping up to Vert.x 4

In­stead of de­vel­op­ing all new fea­tures ex­clu­sively in Vert.x 4, we in­tro­duce some of these fea­tures in the 3.x branch so the com­mu­nity can ben­e­fit from them. The Vert.x 4 de­vel­op­ment focus on more fun­da­men­tal changes that can­not be done in the 3.x se­ries.

Screenshot

This is the first mile­stone of Vert.x 4, we aim to re­lease Vert.x 4 by the end of this year and you can of course ex­pect more mile­stones to out­line the progress of the ef­fort.

Finally

The dep­re­ca­tions and break­ing changes can be found on the wiki.

For this re­lease there are no Docker im­ages.,

The re­lease ar­ti­facts have been de­ployed to Maven Cen­tral and you can get the dis­tri­b­u­tion on Maven Cen­tral.

You can boot­strap a Vert.x 4.0.0-​milestone2 project using https://start.vertx.io.

The doc­u­men­ta­tion has been de­ployed on this pre­view web-​site https://vertx-​ci.github.io/vertx-​4-​preview/docs/

That’s it! Happy cod­ing and see you soon on our user or dev chan­nels.

Next post

Eclipse Vert.x for Scala next steps

This blog post gives an overview of the current plans for the vertx-lang-scala module, in particular with respect to the upcoming Vert.x 4.

Read more
Previous post

Eclipse Vert.x 3.8.1

This new version is a bug fix release that addresses issues reported in Eclipse Vert.x 3.8.1. We also updated Netty to version 4.1.39.Final to fix some CVEs.

Read more
Related posts

Things to keep in mind concerning CSRF attacks

Eclipse Vert.x like most frameworks provides an anti-CSRF defense. However, no framework can prevent all attack vectors that exist in the web. Therefore, developers need to be aware of some dangers and common attack vectors concerning CSRF defenses.

Read more

Building services and APIs with AMQP 1.0

Microservices and APIs are everywhere. Everyone talks about them, presentation slides are full of them ... some people are actually even building them.

Read more

Eclipse Vert.x 4 milestone 1 released!

This is the first milestone of the upcoming Vert.x 4. It extends the 3.x callback asynchronous model to a future/callback hybrid model and introduces a Tracing API.

Read more