package reactmann;

import io.vertx.core.AbstractVerticle;
import rx.Observable;

/**
 * @author blake
 */
public abstract class RiemannVerticle extends AbstractVerticle {
    @Override
    public void start() {
        vertx.deployVerticle("java:reactmann.TcpMessageVerticle", event -> observeStream(Riemann.getEvents(vertx)));
    }

    public abstract void observeStream(Observable<Event> events);
}

package reactmann;

import io.vertx.core.AbstractVerticle;
import rx.Observable;

/**
 * @author blake
 */
public abstract class RiemannVerticle extends AbstractVerticle {
    @Override
    public void start() {
        vertx.deployVerticle("java:" + WebSocketVerticle.class.getName(), webSocketCallback -> {
            vertx.deployVerticle("java:" + TcpMessageVerticle.class.getName(), tcpMessageCallback -> observeStream(Riemann.getEvents(vertx)));
        });
    }

    public abstract void observeStream(Observable<Event> events);
}

Make sure to deploy the websocket verticle by default as well.