private void connectAndPublish(Object payload, DynamicOptions dynamicOptions, S state)
            throws ConnectionUnavailableException {
        connect();
        setConnected(true);
        publish(payload, dynamicOptions, state);
        if (connectionCallback != null) {
            connectionCallback.connectionEstablished();
        }
    }
Will be called for initialing the {@link Sink}

@param outputStreamDefinition containing stream definition bind to the {@link Sink}
@param optionHolder           Option holder containing static and dynamic options related to the {@link Sink}
@param sinkConfigReader       this hold the {@link Sink} extensions configuration reader.
@param siddhiAppContext       {@link SiddhiAppContext} of the parent siddhi app.
modules/siddhi-core/src/main/java/io/siddhi/core/stream/output/sink/Sink.java