I have a question concerning the Vertx Eventbus and how to use it properly. There are at least two options of using the EventBus in Vertx:
I use the Eventbus methods provided by Vertx to call functions residing on another Verticle. The upside here is that I can use Codecs to pass parameters over the Eventbus. If i only want to use it locally, i can just pass the reference. The downside here is that I need to provide a String to define which function I want to call. Looking at developer speed, this is very bad, because now I have to search for Strings in the code base to find the functions that I call.
I use Vertx Service Proxy. This is quite handy as it generates proxies for the Eventbus on compile time. This allows me as a developer to follow the functions I am calling across Verticles and I do not have to deal with the Eventbus API at all. However it has some important drawbacks as well: Now the startup time takes longer and the Service Proxy is converting all function properties to and from Json. This can be very bad for application performance.
My question: What is the best way to use the Eventbus? Am I missing something that can help me with the drawbacks of option two? Are there alternatives that I dont see yet?
Thanks