def emit(self, action, payload=None, retry=0):
        """Emit action with payload.

        :param action: an action slug
        :param payload: data, default {}
        :param retry: integer, default 0.
        :return: information in form of dict.
        """
        payload = payload or {}

        if retry:
            _retry = self.transport.retry(retry)
            emit = _retry(self.transport.emit)
        else:
            emit = self.transport.emit

        return emit(action, payload)