You need a ExecutionContext for Futures and Promises. It is used implicitly by the map/flatMap methods in a Future for example. For Vert.x we need to use the "run directly on this thread" concept. If we'd use the global implicit ExecutionContext provided by Scala, Vert.x would break due to the different Threading model in it.

Disclaimer: Tim helped building this class, so I'd expect it to be correct from the logical point of view ;) and my code ran fine with using Futures and this ExecutionContext. :)