If I understand you correctly, you want to send a message out to n recipients, have them process it, then when all the results are received (or a timeout occurs), do something.
We don't support this in the event bus out of the box, but it's something that should be pretty simple to layer over the current API, and using the work queue (see busmods manual).
Basically set up the work queue as normal, and implement your processors.
Then when sending the message, let's say you want to send it to 10 recipients (in JS):
(Off the top of my head - probably has bugs since haven't run it)
var n = 10;
var eb = vertx.eventBus;
function sendWork(work) {
for (var i = 0; i < n; i++) {
var replies = 0; // Aren't closures cool?
eb.send('address-of-my-work-queue', work, function (reply) {
if (++replies == n) {
// All replies have returned - do something
}
}
vertx.setTimeout(1000, function() {
// Timeout after 1 second. Do something
});
}
}
Something like that.