throw RuntimeException instead of IOException
clean try/catch exception
Refractor the client code api to use event/model to work better with Vertx, add Vertx http clien