Instead of doing one thing well it does a bunch of things poorly.
If you need a message bus use a dedicated one. Like RabbitMQ, Kafka, etc..
If you need to handle event flows use Spring Integration, or Storm, or some other pipes and filters tool.
If you need actors (which you probably don't) use an actor framework like Akka.
If you want everything to be async use async libraries and futures. Vertx's callback style makes code basically unreadable. It's jdbc library is low level and super ugly so that it can be async style. But it's not actually async so you lose a lot and gain nothing by using it.
It's libraries for dealing with HTTP/Rest stuff are also ugly and low level.
Overall it's DI/IoC unfriendly. I am not convinced the creators even know what DI is.
It considers polyglot a blessing instead of a curse.
It was created to be a better Nodejs on the JVM. Which it no doubt is. But that is a low bar.